Last Updated: May 26, 2026
CQRS separates commands that change state from queries that read state.
It helps when writes and reads need different models, performance characteristics, or consistency guarantees, but it adds complexity when simple CRUD would be enough.
This chapter covers what commands and queries are, how CQRS differs from ordinary CRUD, implementation levels, read model synchronization, eventual consistency, its relationship with event sourcing, and when CQRS is useful or unnecessary.