Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What difference between NEventStore and EventStoreDB

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.

like image 410
JasonMing Avatar asked Sep 11 '13 11:09

JasonMing


People also ask

What is EventStoreDB?

EventStoreDB is an industrial-strength Event Sourcing database that stores your critical data in streams of immutable events. It was built from the ground up for Event Sourcing and offers an unrivaled solution for building event-sourced systems.

What database is used for event sourcing?

On the technical level, event sourcing can be implemented using dedicated storage systems, as well as general-purpose "NoSQL" and SQL databases. If you're interested in the origins of event sourcing, the articles by Greg Young on event sourcing and CQRS are a great place to start.

How does event store work?

Event stores are the database category that is natively focused on storing events. Usually, they do that by having the append-only log as the central point. An event store is a different kind of database from traditional databases (graph, document, relational etc).

What is event sourcing useful for?

Event Sourcing ensures that all changes to application state are stored as a sequence of events. Not just can we query these events, we can also use the event log to reconstruct past states, and as a foundation to automatically adjust the state to cope with retroactive changes.


2 Answers

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.

like image 102
PB. Avatar answered Oct 04 '22 00:10

PB.


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

like image 36
Michael Freidgeim Avatar answered Oct 03 '22 23:10

Michael Freidgeim