30
votes

Recently I'm learning CQRS and want to change my system to use event-sourcing patterns.

But I found that on .Net platform, there is two Event Store implementations.

  1. NEventStore(formerly JOliver EventStore)
  2. EventStoreDB(from EventStore.com)

The two implementations confuse me - can someone please explain the key differences between them.

2
They are completely different products. They are alike in the sense that they both implement Event Sourcing, but they are very different. It's like comparing Sql Server with mysql.Mikael Östberg
@MikaelÖstberg Thanks for your commenting, in my concept, there is no many different between SqlServer and MySQL.JasonMing
@MikaelÖstberg Perhaps more like comparing SQLite to RavenDB ? (as in one can be embedded into your app regardless of what sort of deployment arrangement you have and deliberately doesn't try to cover everything end to end whereas GetEventStore is a much bigger and powerful thing but also necessarily more complex and less adaptable [from a deployment perspective]). Anyone have a better contrasting set of examples - happy to delete this one when it's been bettered!Ruben Bartelink

2 Answers

39
votes

NEventStore is a persistence agnostic event sourcing library for .NET with multiple storage options such as relational and document databases.

EventStoreDB is a newer and high performing event sourcing solution with its own persistence engine and API's for multiple protocols and languages. It has open source and commercial options.

As far as I know you can use EventStoreDB as a persistence engine for NEventStore in a future version of NEventStore as well.

3
votes

Additionally to mentioned EventStoreDB and NEventStore there is relatively new SQLStreamStore library, that conceptually similar to NEventStore.

They have a few essential differences, but historically SQLStreamStore can be consider as a successor of NEventStore. The author of the SQLStreamStore damianh previously was a maintainer of NEventStore. The latest release of NEventStore was 15 Mar 2014, SQLStreamStore is actively developing.

For more details why SqlStreamStore was created see the answer SQLStreamStore vs NEventStore vs EventStore #108