EventStore vs. MongoDb for Event Sourcing

2,732 views
Skip to first unread message

Aaron Adams

unread,
Aug 6, 2014, 2:11:58 PM8/6/14
to event...@googlegroups.com
I'm going to build a greenfield SaaS project that seems suited for Event Sourcing and CQRS.  I'm going to use NodeJS to expose a Restful API to the AngularJS client.  I'm read a lot about Event Sourcing from Greg Young, but I have no experience in this area.  

What are the advantages/disadvantages of using EventStore (http://geteventstore.com) over implementing event sourcing in MongoDb?  

Also, I cannot find good information on the best way to get data from the Event Source to the Read model (or eventual consistency) -- and then get that updated data back to the client.  On twitter James Nugent suggested it's better to use the event store as a queue, but I'm not sure how this would work.

And guidance using the Atom API with NodeJS would be great.


Is there a simple, complete, example showing how all this works with NodeJS?  

Wayne Douglas

unread,
Aug 6, 2014, 3:23:55 PM8/6/14
to event...@googlegroups.com
If you're struggling between ges and xyz wouldn't Kafka be a better thing to consider?

Sent from Mailbox


--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Greg Young

unread,
Aug 6, 2014, 4:07:25 PM8/6/14
to event...@googlegroups.com
So a simple question. How will you do the following with mongo:

Write and read events to/from streams with ordering etc

Then:

Your projections don't want to read from streams in the same way they were written, projections are normally interested in event types and want all events of type t regardless of stream written to and in proper order.

This would seem to be a nontrivial task on mongodb
--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Studying for the Turing test

Aaron Adams

unread,
Aug 6, 2014, 4:19:18 PM8/6/14
to event...@googlegroups.com
Thanks for the feedback Greg.  I think you answered the question with a question -- and that makes sense for my first question -- thank you.  But what of the remaining questions?  And the most important question I suppose, is there a resource/how-to for @GetEventStore and @NodeJS?  

Thanks again for your time Greg.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Greg Young

unread,
Aug 6, 2014, 4:21:19 PM8/6/14
to event...@googlegroups.com
https://github.com/danmactough/node-feedparser

Is a parser but for XML based ones. If you look in the http docs all of the operations are documented including relevant curl commands
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Aaron Adams

unread,
Aug 6, 2014, 4:25:50 PM8/6/14
to event...@googlegroups.com
I'll check it out -- thanks again for your time and your efforts in what looks to be a fantastic product in @GetEventStore.  

P.S., I hope it runs well in an Azure worker role or the like.

James Nugent

unread,
Aug 7, 2014, 9:20:37 AM8/7/14
to event...@googlegroups.com
Aaron,

Running a database in a worker role is VERY bad idea (though it may be technically possible) - you have very few guarantees about where, what and how your instances will get moved.

If you want to use Event Store in Azure you’ll want to be using it in VMs instead - several customers are doing that, but it can require some specialised configuration to make the storage perform well enough (e.g. changing the memtable-ptable crossover to avoid having to pull large chunks from storage a long way away). This is true of basically any database though, or anything with heavy storage requirements.


James
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
Message has been deleted

Aaron Adams

unread,
Aug 7, 2014, 2:52:39 PM8/7/14
to event...@googlegroups.com
Thanks James.

I found this doc related to Azure installation: https://github.com/EventStore/EventStore/wiki/Setup-EventStore-on-Windows-Azure -- it looks to be basic installation.

What about the other long-term aspects of using the EventStore product, such as:

1) high availability (fault tolerance)
2) recovery, 
3) scale (horizontally and vertically), and
4) maintainability (what are its KPIs and what tools should/can be used to monitor)

Do you have documentation covering these aspects of configuration and operation?

Mattias Petter Johansson

unread,
Mar 29, 2015, 7:20:06 AM3/29/15
to event...@googlegroups.com
Couldn't one just use MongoDBs tailable cursor for that? 
To unsubscribe from this group and stop receiving emails from it, send an email to event-store+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages