Thank you Roland and team for listening and sharing your ideas and plans.

As I have said, I think there are three different but related areas of 
functionality being discussed here: 1) Actor Persistence, 2) 
Publish-Subcribe (to Topics), and 3) Full CQRS support.  

Conceptually, for CQRS (3), I like to think of the write-side (primarily) 
creating one big event stream that flows (primarily) to the read-side. 
 PersistentView actors can then query from this stream to get persistent 
state for an actor or a stream based on some criteria (query). 

As has been mention by yourself and others, Actor Persistence (1) seems to 
work very well for persistence events. However, there are a few things I 
suggest you could possibly do to make it even better and leverage the new 
functionality of PersistentView.

1. I suggest there should be a facility (Trait?) for any actor to be able 
to publish events to the "event stream."  I believe it is a common 
"requirement" in CQRS to be able to publish events to the event stream 
independent of supporting Actor Persistence (1), 

2. Considering the facilities to be provided for PersistentView to read 
from a stream based on some query, I suggest it is worth going one extra 
step to allow actors (not necessarily PersistentActors) to post to a 
specific keyword/topic(s) and thus provide Publish-Subscribe (2.), and 
finally

3. I would suggest some ability to provide additional metadata with the 
events that could be used for causal dependency / ordering hints or other 
functionality like Publish/Subscribe (2).  This may be possible to do just 
by the user including metadata within the events but I am not sure.

I note: a) Publish/Subscribe (2) is not requiring the event store 
implementation maintains independent topic stream, some may by default - 
others may construct them if queried, just that queries can possibly refer 
to them, and b) all three of these suggestions are somewhat related.

In summary, I think giving a little bit of extra love to the write-side 
(not specifically for PersistentActor) could be very useful considering the 
work you are planning on the read-side (PersistentView).

Thanks for considering these suggestions.

Cheers,
Ashley.


-- 
>>>>>>>>>>      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 akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
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