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
- 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.