A few things I have noted when re-reading "Exploring CQRS and Event 
Sourcing" http://msdn.microsoft.com/en-us/library/jj554200.aspx :

A. Events can play two different roles in a CQRS implementation: 1) Event 
Sourcing - as a.p provides to persist the state of an aggregate root, and 
2) Communication and Integration - between bounded contexts and with other 
systems.

B. Not all events in a CQRS system are related to an Aggregate Root: "Your 
event store must have a away to store events that are not associated with 
an aggregate." page 283, so there needs to be a way to inject events 
independently of AR persistence. 

C. There needs to be enough default information associated with events in 
the event store to allow (re)construction of various different projections 
after the events were published, i.e. without requiring a priori 
"labelling" of events for specific projections.

These points suggests to me that:

1. To do AR persistence Akka can get by with a "hidden journal" but for 
full CQRS it may also need to provide access to an Event Store for actors 
(and other entities) to publish events and to filter the whole event stream 
directly as needed. 

That said, perhaps a PersistentActor could publish events not related to 
its persistence and just ignore them when rebuilding its state.

2. There needs to be more transparent metadata associated with events, 
beyond a (possibly optional) persistenceId, that isn't just specified with 
specific projections in mind.  I suggest the full type of the event would 
be a good start (to help with the filtering in 1.). 

Perhaps also something to help with partial / causal ordering could be 
included.




-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to