Hugh McKee is a developer advocate at Lightbend. He has had a long career building applications that evolved slowly, that inefficiently utilized their infrastructure, and were brittle and prone to failure. That all changed when he started building reactive, asynchronous, actor-based systems. This radically new way of building applications rocked his world. As an added benefit, building application systems became way more fun than it had ever been. Now he is focused on helping others to discover the significant advantages and joys of building responsive, resilient, elastic, message-driven applications.
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.