Eventsourced becomes akka-persistence

894 views
Skip to first unread message

Martin Krasser

unread,
Aug 19, 2013, 11:21:01 AM8/19/13
to events...@googlegroups.com, eventsou...@googlegroups.com
All,

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.

Regards,
Martin

-- 
Martin Krasser

blog:    http://krasserm.blogspot.com
code:    http://github.com/krasserm
twitter: http://twitter.com/mrt1nz

Dan Di Spaltro

unread,
Aug 19, 2013, 11:25:42 AM8/19/13
to events...@googlegroups.com, eventsou...@googlegroups.com
Congrats, seems like the right solution.


--
You received this message because you are subscribed to the Google Groups "Eventsourced User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eventsourced...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
Dan Di Spaltro

Odd Möller

unread,
Aug 19, 2013, 11:44:18 AM8/19/13
to events...@googlegroups.com
Congrats to all involved! This future looks promising!
//Odd

HP

unread,
Aug 19, 2013, 12:20:27 PM8/19/13
to events...@googlegroups.com, eventsou...@googlegroups.com, kras...@googlemail.com
Great to hear!  I hope the 0.6.0 release will be available with support for all the journals.

-Hiral

Martin Krasser

unread,
Aug 19, 2013, 12:24:57 PM8/19/13
to events...@googlegroups.com

On 19.08.13 18:20, HP wrote:
Great to hear! �I hope the 0.6.0 release will be available with support for all the journals.

eventsourced-0.6.0 will be more or less what's currently in master, so all journals will be supported.


-Hiral

On Monday, August 19, 2013 8:21:01 AM UTC-7, Martin Krasser wrote:
All,

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.

Regards,
Martin

-- 
Martin Krasser

blog:    http://krasserm.blogspot.com
code:    http://github.com/krasserm
twitter: http://twitter.com/mrt1nz
--
You received this message because you are subscribed to the Google Groups "Eventsourced User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eventsourced...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

scott.clasen

unread,
Aug 19, 2013, 1:04:46 PM8/19/13
to eventsou...@googlegroups.com, events...@googlegroups.com, kras...@googlemail.com
Awesome.


On Monday, August 19, 2013 8:21:01 AM UTC-7, Martin Krasser wrote:

Stephen Stewart

unread,
Aug 19, 2013, 1:47:50 PM8/19/13
to events...@googlegroups.com
Great news Martin, congratulations!


Stephen Stewart
Director of Engineering
Easel TV – the multi-screen video software company
stephen...@easeltv.com
+44 (0)7855 753376





19 August 2013 16:21

Duncan DeVore

unread,
Aug 19, 2013, 2:14:07 PM8/19/13
to scott.clasen, events...@googlegroups.com, kras...@googlemail.com, eventsou...@googlegroups.com
This is fantastic!

Sent from Mailbox for iPhone
The preceding email message may contain confidential information of Viridity Energy, Inc. It is not intended for transmission to, or receipt by, any unauthorized persons. If you have received this message in error, please (i) do not read it, (ii) reply to the sender that you received the message in error, and (iii) erase or destroy the message.

Greg Young

unread,
Aug 19, 2013, 2:22:39 PM8/19/13
to events...@googlegroups.com, eventsou...@googlegroups.com
Congrats good to see it moving! 


For ha and distributed storage, The akka client over tcp for geteventstore is nearing completion (mid sept release). We will be adding it as an eventsourced journal (including for ha). Will let you know when that is done. If people want to checkout the ongoing work on akka client it's here  https://github.com/EventStore/eventstorejvmclient

Greg
--
You received this message because you are subscribed to the Google Groups "Eventsourced User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eventsourced...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


--
Le doute n'est pas une condition agréable, mais la certitude est absurde.

Liu Tiger

unread,
Aug 19, 2013, 9:26:50 PM8/19/13
to events...@googlegroups.com, eventsou...@googlegroups.com, kras...@googlemail.com
Great news! Thank Martin!

在 2013年8月19日星期一UTC+8下午11时21分01秒,Martin Krasser写道:

Martin Krasser

unread,
Aug 20, 2013, 12:12:47 AM8/20/13
to events...@googlegroups.com

On 19.08.13 20:22, Greg Young wrote:
Congrats good to see it moving!�


For ha and distributed storage,�The akka client over tcp�for geteventstore is nearing completion (mid sept release).

Good news!


We will be adding it as an eventsourced journal (including for ha).

Great, really looking forward to that contribution.

Will let you know when that is done. If people want to checkout the ongoing work on akka client it's here �https://github.com/EventStore/eventstorejvmclient

Greg

On Monday, August 19, 2013, Martin Krasser wrote:
All,

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.

Regards,
Martin

-- 
Martin Krasser

blog:    http://krasserm.blogspot.com
code:    http://github.com/krasserm
twitter: http://twitter.com/mrt1nz
--
You received this message because you are subscribed to the Google Groups "Eventsourced User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eventsourced...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


--
Le doute n'est pas une condition agr�able, mais la certitude est absurde.

--
You received this message because you are subscribed to the Google Groups "Eventsourced User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eventsourced...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

ahjohannessen

unread,
Aug 20, 2013, 5:07:58 AM8/20/13
to events...@googlegroups.com, eventsou...@googlegroups.com, kras...@googlemail.com
Very cool Martin! :)

When you say that processors and channels don't need a numeric id anymore, do we get string identifiers instead or how is that going to work?

Please elaborate a bit on the enhancement and changes, they sure sound impressive in my ears! :)

Martin Krasser

unread,
Aug 20, 2013, 5:17:05 AM8/20/13
to events...@googlegroups.com
Hi Alex,


On 20.08.13 11:07, ahjohannessen wrote:
Very cool Martin! :)

When you say that processors and channels don't need a numeric id anymore, do we get string identifiers instead or how is that going to work?

They will be identified by their (actor) path.



Please elaborate a bit on the enhancement and changes, they sure sound impressive in my ears! :)

I'll go into details when there is an initial version of akka-persistence available (in a few weeks or so). It makes IMO more sense to discuss changes/enhancements based on runnable examples. Thanks for your understanding.

Cheers,
Martin

ahjohannessen

unread,
Aug 20, 2013, 5:41:24 AM8/20/13
to events...@googlegroups.com, kras...@googlemail.com
Hi Martin :) 

They will be identified by their (actor) path.

Ah, now that is a nice and interesting idea! :) Seems to allow for more flexible setups! :) Looking forward to see how that works with regards to clustering.

I'll go into details when there is an initial version of akka-persistence available (in a few weeks or so). It makes IMO more sense to discuss changes/enhancements based on runnable examples. Thanks for your understanding.

That's sound, no problem dude :)

Chester Chen

unread,
Aug 20, 2013, 9:05:50 PM8/20/13
to events...@googlegroups.com, eventsou...@googlegroups.com, kras...@googlemail.com
Congrats. 

     Like the changes. 

Chester


On Monday, August 19, 2013 8:21:01 AM UTC-7, Martin Krasser wrote:
Reply all
Reply to author
Forward
0 new messages