Akka-d3 is a library to help you with Domain Driven Design, possibly in a distributed environment, on top of Akka. It does so by embracing event sourcing and CQRS.

Getting started

Akka-d3 is currently available for Scala 2.11 & 2.12. The library is published on maven central, and can be added to your project, by adding the following line to your build configuration (e.g. build.sbt).

libraryDependencies += "io.pjan" %% "akka-d3" % 0.6.0

This will pull in all of akka-d3 core & cluster modules. If you only require some functionality, or you want additional functionality, you can pick-and-choose from amongst these modules (used in place of akka-d3):

  • akka-d3-core: Core of akka-d3. Allows you to run the write side in single-node mode (required).
  • akka-d3-cluster: Module to extend the write side of akka-d3 so aggregates can be sharded over multiple nodes.
  • akka-d3-query-inmemory: In-memory query backend, using akka-persistence-inmemory.
  • akka-d3-query-cassandra: Cassandra query backend, using akka-persistence-cassandra.
  • akka-d3-readside-cassandra: Readside extension for cassandra.

More info

Head over to some background introduction,

All code is available to you under the MIT license, available at http://opensource.org/licenses/mit-license.php and also in the COPYING file. Concepts and design is informed by other projects.


akka-d3 plugin is completely written in Scala


akka-d3 is built on top of akka