CQRS
Use separate command and read models when their needs truly diverge.
Problem
A normalized write model may not efficiently serve complex projections.
When to use it
- Many read shapes lag safely
- Projection rebuilding is understood
When not to use it
- Simple CRUD
- Teams cannot operate asynchronous projections
Minimal example
Commands write orders; events update customer timeline and operations queue projections.
Tradeoffs
- Eventual consistency
- More schemas, versioning, repair, and observability