Event sourcing is an architectural pattern that derives current application state from a journal of changes, called events. Traditionally, this is only internal and not directly visible on a system’s API. An alternative is presented which exposes the events themselves as a real-time streaming REST API.
This way, connected systems can materialize their own data, while being deployable and versioned independently. We will talk about how reactive programming helps with keeping the system performance and clusterable, how to deal with past vs. real-time events, what to do with security, in addition to sharing general event sourcing advice.
The presented use case represents the development of a real-time document conversation tool, which in addition to its own message stream extracts data from several other existing sources. The core system is built in Java and Scala using Akka, on a Cassandra database. Event consumers are written in other languages, e.g. NodeJS.
Keywords: Reactive, Akka, Scala, Java
Session Category : Talk