These are chat archives for RBMHTechnology/eventuate

15th
Nov 2016
Martin Krasser
@krasserm
Nov 15 2016 06:24
If causal ordering is relevant, the second actor should react on the first actor's event. Should the second actor want to produce new events to the same event log from which it received the first actor's events it should use PersistOnEvent. If new events should be written to another event log, you probably have an EventsourcedProcessor or StatefulProcessor use case.
The first actor could also see the second actor as external service and interact with it via ConfirmedDelivery. ConfirmedDelivery however may deliver commands out of order and may also generate duplicates. I've not used that for Eventsourced* component interactions in my projects so far, only for interactions with external services that are not event-sourced.
Marco Ehrentreich
@mehrentreich
Nov 15 2016 07:09
@krasserm thank you very much for your help
if I've understood it correctly that "If causal ordering is relevant, the second actor should react on the first actor's event. Should the second actor want to produce new events to the same event log from which it received the first actor's events it should use PersistOnEvent." is the typical way to apply the CQRS / DDD principles if you want to update additional aggregates as a reaction to domain events produced by your "main" aggregate
Martin Krasser
@krasserm
Nov 15 2016 07:39
A typical application of CQRS principles would be to update read models (e.g. managed by EventsourcedView or EventsourcedWriter) from updates in write models (managed by EventsourcedActor). Inter-EventsourcedActor communication is rather used to acieve eventual consistency between write models (having state replication as a special case here).
Marco Ehrentreich
@mehrentreich
Nov 15 2016 18:24
@krasserm I think we are actually talking about the same thing
Inter-EventsourcedActor communication is exactly what I want to achieve
I'm already using EventsourcedViews to update read models in an eventually consistent manner
but I wasn't sure if it's the right way to do the persist() inside an event handler if I want to update other WRITE models