Google Groups

Eventsourced becomes akka-persistence

Martin Krasser Aug 19, 2013 8:21 AM
Posted in group: Eventsourced User List

as recently announced, Eligotech and Typesafe will collaborate on moving and transforming Eventsourced into the akka-persistence module. The work on akka-persistence starts this week. I'm very excited about this opportunity to bring Eventsourced to the next level.

The current architecture of Eventsourced (processors, channels, pluggable journals, …) will be preserved, the design and the API will be revised. This will further simplify its usage, make it easier to apply it in more advanced use cases and follow Akka idioms and best-practices more strictly. There will also be a migration guide from the yet to be released eventsourced-0.6.0 to the new akka-persistence module. The eventsourced-0.6.0 release should be out within the next 1-2 weeks.

The following list contains some examples of planned enhancements/changes:

- Processors and channels don't need a numeric id anymore
- Central processor and channel registry will be removed
- Processors will be able to self-recover, not only during startup but also after a restart by a supervisor. Newly received messages by a processor will be automatically buffered during recovery, so that they cannot wrongly interleave with replayed messages.
- Channels won't need explicit activation
- Therefore, recovery of a (distributed) network of processors (connected by channels) doesn't need to be coordinated anymore (i.e. the two phases of recovery, processor replay and channel activation, aren't needed to consistently recover the state of an application)
- …

For the first akka-persistence release, we plan to have a LevelDB-backed journal bundled with it, where applications can configure whether the native LevelDB or a Java port of it shall be used. The other journals will stay at Eligosource and will be extended and further supported for being compatible with akka-persistence. A distributed journal (for HA and scaling writes) might be part of future releases of akka-persistence.


Martin Krasser