-
Notifications
You must be signed in to change notification settings - Fork 103
One aggregate per actor pattern #36
Comments
I didn't have time yet to write this up, so awesome you already took the time! I couldn't have put it more accurate. If all of this is supported it would reduce the amount of code needed for one aggregate per actor to the minimum I think. I was initially thinking of implementing a |
@remcobeckers no worries! Glad that the summary fits your requirements. I agree, something like I still need to complete some other tickets first but hope to be able to start working on this soon. |
- re #36 - Optional aggregate id in EventsourcedActor - Breaking change: processId -> replicaId - EventsourcedActors with no aggregate id defined receive all events - EventsourcedActors with aggregate id defined receive events from replicas with same aggregate id - Eventlog not indexed yet (still full scan for aggregate replays) - Scala example re-written
@remcobeckers I just committed a first implementation supporting the one-aggregate-per-actor pattern. It introduces an optional I did not introduce a separate The event log is not indexed yet, so an aggregate recovery is a full log scan at the moment but this is an implementation details in the event log. The index will come with one of the next commits (together with user doc and API doc updates and further tests). Would be great if you could take a look at the commit and let me know if it fits your requirements. Cheers, |
Efficiently support the pattern to have one DDD Aggregate per
EventsourcedActor
. The example application still follows the many aggregates per actor pattern but it has already been re-written by @remcobeckers to follow the one aggregate per actor pattern (see also this discussion). Eventuate should support efficient implementations of this pattern by providing the following enhancements:EventsourcedView
s or non-aggregateEventsourcedActor
s continue to receive all events written to the event log (to support the one view for many actors pattern, for example).implement. Update:EventsourcedAggregate
as specialization ofEventsourcedActor
to support implementing the one aggregate per actor patternEventsourcedActor
has an optionalaggregateId
.EventsourcedAggregate
cannot break this property.The text was updated successfully, but these errors were encountered: