Evaluation of using NoSQL databases in an event sourcing system
An event store is a database for storing events in an event sourcing system. Instead of storing the current state, a very common way to persist data, an event sourcing system captures all changes to an application state as a sequence of events. Usually the event store is a relational database. Relat...
Main Author: | |
---|---|
Format: | Others |
Language: | English |
Published: |
Linköpings universitet, Databas och informationsteknik
2015
|
Subjects: | |
Online Access: | http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-123193 |
Summary: | An event store is a database for storing events in an event sourcing system. Instead of storing the current state, a very common way to persist data, an event sourcing system captures all changes to an application state as a sequence of events. Usually the event store is a relational database. Relational databases have several drawbacks and therefore NoSQL databases have been developed. The purpose of this thesis is to explore the possibility of using a NoSQL database in an event sourcing system. We will see how data is stored in an event store and then evaluate di↵erent solutions to find a suitable database. The graph database Neo4j was selected to be further investigated and a Neo4j event store has been implemented. At last the implemented solution is evaluated against the existing event store that uses a relational database. The conclusion of this thesis is that event store data could easily be modeled in Neo4j but some queries became complex to implement. The performance tests showed us that the implemented event store had poorer performance than the existing one using a relational database. |
---|