CQRS Tradeoffs
CQRS buys independent read/write models at the cost of more moving parts and explicit consistency choices.
Decision Frame
Identify the forces: read scale, write contention, model complexity, audit needs, team maturity, and latency tolerance.
Decide which consistency guarantees are required for commands and which can be eventual in reads.
Check whether separate read models remove real complexity or just duplicate code.
Choose the smallest pattern: unified model, CQRS without ES, CQRS with outbox, or event-sourced CQRS.
Tradeoffs
Benefits: optimized reads, simpler command invariants, independent scaling, better audit/projection options.
Costs: projection lag, more tests, operational monitoring, replay tooling, schema evolution, and debugging complexity.
Red flags: low traffic, simple CRUD, no contention, no audit need, or a team that cannot operate async pipelines.
Detailed Reference
For non-trivial implementation, review, or refactoring work, read references/details.md before giving final guidance. It contains the detailed rules, examples, smells, and migration notes that do not belong in the short invocation body.
Output
Return a recommendation, rejected alternatives, consistency model, migration path, and operational prerequisites.
1---2name: cqrs-tradeoffs3description: Use when evaluating whether CQRS is worth adopting, especially tradeoffs among consistency, availability, scalability, operational complexity, and event sourcing. Trigger for read/write separation decisions, eventual consistency concerns, CQRS architecture review, or choosing between a unified model and CQRS.4---56# CQRS Tradeoffs78CQRS buys independent read/write models at the cost of more moving parts and explicit consistency choices.910## Decision Frame11121. Identify the forces: read scale, write contention, model complexity, audit needs, team maturity, and latency tolerance.13142. Decide which consistency guarantees are required for commands and which can be eventual in reads.15163. Check whether separate read models remove real complexity or just duplicate code.17184. Choose the smallest pattern: unified model, CQRS without ES, CQRS with outbox, or event-sourced CQRS.1920## Tradeoffs2122- Benefits: optimized reads, simpler command invariants, independent scaling, better audit/projection options.2324- Costs: projection lag, more tests, operational monitoring, replay tooling, schema evolution, and debugging complexity.2526- Red flags: low traffic, simple CRUD, no contention, no audit need, or a team that cannot operate async pipelines.2728## Detailed Reference2930For non-trivial implementation, review, or refactoring work, read `references/details.md` before giving final guidance. It contains the detailed rules, examples, smells, and migration notes that do not belong in the short invocation body.3132## Output3334Return a recommendation, rejected alternatives, consistency model, migration path, and operational prerequisites.