Command-Query Responsibility Segregation (CQRS) represents a fundamental shift in how we look at architecting complex software solutions. It suggests that decomposition of complex systems into (relatively) narrowly-focused isolated subsystems with carefully-considered discrete responsibilities is the best way to manage complexity and achieve scalability. But CQRS has come under fire from its critics as introducing needless complexity to solve what are otherwise simple problems. Which is it?
Perhaps both :) In this talk by Stephen Bohlen we’ll take a look at understanding CQRS as a set of fundamental design principles and explore common implementation patterns that many are today using to translate these principles into practice. Along the way, we’ll demystify terms like Event Sourcing, Read-Models, Command-Handlers, Write-only Domain Models, Message Buses, and more. We’ll explore all of these in the context of a working CQRS-based system that demonstrates these concepts in action.
Comments