/akka-ddd

Akka CQRS/ES framework

Primary LanguageScalaMIT LicenseMIT

akka-ddd Build Status Scala CI Version

Join the chat at https://gitter.im/pawelkaczor/akka-ddd

Akka-DDD is a framework for building distributed services following DDD/CQRS/ES architecture on top of the Akka platform. Thanks to the pluggable architecture of the Akka-Persistence, Akka-DDD is not tied to any particular event journal provider.

The services are built as actor systems. Different services can be distributed in the same cluster (Akka cluster) or can be deployed to independent clusters.

Akka-DDD offers concise APIs for implementing business logic of the following actor types:

  • Aggregate Root
  • Process Manager
  • Receptor

All of these are event-sourced actors that support reliable (effectively-once delivery) communication. Process Managers and Receptors are operating within non-blocking back-pressured event processing pipeline.

Akka-DDD provides an extensible implementation of the View Update Service that is responsible for running running Projections on the read-side of the system. Implementation of SQL View Update Service is available out of the box.

Akka-DDD has been tested with the EventStore journal implementation. A demo project of an e-commerce system implemented using Akka-DDD is available on GitHub.

Documentation

Project homepage.

Documentation.

Articles in Reactive DDD with Akka series.

Demo project.