CQRS and Event Sourcing are both popular patterns that at the same time can be quiet overwhelming.
CQRS, or Command and Query Responsibility Segregation is a pattern in which you use different models for reads and writes. This separation enables you to better optimize both models as well as scaling them independently.
CQRS is often used in combination with Event Sourcing. Event Sourcing is nothing more than storing current state as a series of events and rebuilding system state by replaying that series of events.
While these patterns are conceptually fairly trivial, actual implementations often add a lot of complexity.
In this session I’ll start from scratch with a simple and lean implementation of CQRS and Event Sourcing using Azure Storage. Next, I’ll show how to extend the functionality of the solution by adding more complex features such as global ordering, messaging integration and multi-stream projections. Luckily, there are many Azure services that can be of great use while building CQRS/Event Sourced systems, such as Azure Service Bus and Azure Cosmos DB. Along the way, I’ll discuss lessons learned from running a production CQRS+ES based smart meter platform on Azure.