This project contains various addons to Akka useful when working with:
- Cluster
 - Sharding
 - Persistence and Eventsourcing
 - Serializing
 
This code has turned out to be quite useful for NextGenTel and is used in production.
| Akka | akka-tools | branch | 
|---|---|---|
| 2.5 | 2.5.x.x | master | 
| 2.4 | 1.1.2 | 1.1 | 
The changes can be found in this file.
Info about how to migrate your source from akka-tools 1.0.x to 1.1.x can be found in MIGRATION-info.md.
Below is a summary of the various modules
akka-tools-persistence's main purpose is to make Akka Persistence more easy to use.
The main components are:
- GeneralAggregate - which is built on top of PersistentActor
 - GeneralAggregateView - which is built on top of PersistentQuery
 
It includes features like:
- Separation of aggregate, view and state(machine)
 - both aggregate and view understands the same events and uses the same "state machine"
 - integrated cluster/sharding-support
 - Simplified AtLeastOnceDelivery-support
 - Automatic starting and stopping (of idle) aggregates and views
 - Automatic working view that supports getting the current state (ie. to be used from REST) and the full event history (nice when debugging)
 
akka-tools-json-serializing is an Akka Serializer implementation that uses Jackson Json.
Json is a good match for evolving data-structures, but this serializer also supports coded data-structure-upgrading
akka-tools-jdbc-journal is a JDBC journal-plugin for Akka Persistence.
When used together with akka-tools-json-serializing, it also writes the json as 'plain-text' so that a human can understand the written data.
It supports Persistence Query with EventsByTagQuery (Also multiple tags in the same stream) amongst others
akka-tools-cluster contains cluster-related utilities like:
- dynamic seedNode-resolving
 - Split-brain detection and recovering
 - ClusterSingletonHelper
 
examples contains example code