Reactive programming in eventsourcing systems
- Publisher: Institutional Repository of Vilnius University
Eventsourcing describes current state as series of events that occurred in a system. Events hold all information that is needed to recreate current state. This method allows to achieve high volume of transactions, and enables efficient replication. Whereas reactive programming lets implement reactive systems in declarative style, decomposing logic into smaller, easier to understand components. Thesis aims to create reactive programming program interface, incorporating both principles. Applying reactive programming in eventsourcing systems enables modelling not only instantaneous events, but also have their history. Furthermore, it enables focus on the solvable problem, regardless of low level realisation details. In the following thesis, Ruby programming language is being used, high-level architecture, incorporating reactive programming, event sourcing and command-query responsibility segregation principles, is being shown and eventsourcing system creation guidelines are being described. Reactive operators enable read model creation without exposing realisation details of operations with data storage.