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