I'm keen to hear other people's thoughts on the choice of an event store 
for Akka Persistence for doing CQRS.

As mentioned in my other post, I believe that Akka Persistence only 
provides part of the story for CQRS (but a very important part) and that 
other stores will most likely be needed for query models (both SQL and 
NOSQL stores).  

Since they are project specific I would like to focus here on what store is 
"best" for Akka Persistence for CQRS.

Right now my leading contenders are Kafka and Event Store (but I haven't 
thought too much about Cassandra or MongoDB etc).  My knowledge of all of 
these is limited so please excuse and correct me if any of my statements 
are wrong.


KAFKA: Apache Kafka is publish-subscribe messaging rethought as a 
distributed commit log.
Persistent topics for publishing and subscribing
Highly scalable and distributed
Need to manually create topics for projections
Each topic has own copy of events
Writing to multiple topics is not atomic
Allows logs to be kept for different amounts of time
Battle tested technology from LinkedIn
Not generally used a lifetime store for events

http://kafka.apache.org
https://github.com/krasserm/akka-persistence-kafka/


EVENT STORE: The open-source, functional database with Complex Event 
Processing in JavaScript.
Built specifically for storing and projecting events
Store event once and create virtual projection streams
Journal plugin at early stage in development
Projections are still beta but finalising soon
JSON serialisation (which has +ve and -ve points)
Javascript for projection stream specification
Atom interface helps with debugging
Not as distributed or scalable?
Includes temporal criteria for streams

http://geteventstore.com
https://github.com/EventStore/EventStore.Akka.Persistence

Personally, I like the potential Kafka has to be the event store / log for 
CQRS but also the store for logs in big data processing and analytics. 
 However, the fact that events need to be manually replicated to different 
topics and problems that would be caused if this wasn't consistent is a 
worry.

On the other hand, Event Store has been specifically designed and built for 
event store and projection processing by a leader in the field of CQRS. 
 However, it uses a unique set of technologies and I am not sure of it has 
been battle tested by many or its long term viability.  

What do others think?  What are your thoughts of and has your experience 
been with other stores?


MONGODB: ?


CASSANDRA: ?


As mentioned, I can definitely see the use of the last two for query models 
in addition to one of the  event persistence and projection stream store 
but have not really considered them for the latter myself.

Of course, enormous kudos and no disrespect to any of these fantastic free 
and open-source projects 

Thanks in advance for sharing any thoughts / experiences.

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 [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