The decomposition of the monolith into systems of microservices does not only involve the division of monolithic code it also often includes the dissolution of monolithic data. Therefore building systems composed of loosely coupled microservices requires new software strategies as well as new data strategies. One of the alternative data strategies commonly used is Event Sourcing & CQRS (Command Query Responsibility Segregation).
In this talk, we will take a look at motivations for and the architecture of ES & CQRS. We will also dig into an example implementation of ES & CQRS implemented with Akka and Java. The Akka toolkit provides an actor based implementation of Event Sourcing & CQRS, which means that you can build solutions that run in distributed clusters. We will also look at how Akka Persistence is built on other Akka features, such as cluster singletons and cluster sharding.