Reusable artifacts for building applications on top of Akka platform following a CQRS/DDDD-based approach.
Core functionality originally developed as part of DDD Leaven Akka project.
Used by: DDD Leaven Akka Ver 2
Contains base types for commands and events and their envelopes ( command/event messages ). This module should be used on both write and read side of the application.
Contains core artifacts used on write side of the application:
- AggregateRoot trait - abstract persistent, event sourced actor responsible for processing commands received from the office. Implementation of AggregateRoot trait represents concrete business entity (i.e Reservation, Product, etc) See example AR: DummyAggregateRoot
- Office - an actor that is used by the client to talk to Aggregate Roots of particular class. See Don't call me, call my office for explanation. There are two office implementations: "local" (used for testing) and "global" (uses Akka Sharding
- Saga - implementation of Saga / Process Manager pattern.
Allows easy creation of test of Aggregate Root implementations. Supports both "local" and "global" offices. See DummyOfficeSpec.
Artifacts for building http server with use of Akka Http and Akka Cluster Client responsible for handling commands sent as json messages. Provides infrastructure for demarshalling commands and forwarding them to write-backend application.
Generic artifacts for building view update services that consume events from event store (Event Store is used) and update a configured view store (i.e. Sql database).
Sql (defult is Postgresql) specific implementation of view-update artifacts.
Customized EventStore serializer (extends serializer provided by EventStore journal aware of event definition from akka-ddd-messaging.