advanced

CQRS

Разделяйте command и query models, когда read shape, scale или latency needs достаточно отличаются для synchronization complexity.

CQRS разделяет write models под business rules и read models под queries — разные schemas, stores или scaling. Updates через events или sync pipelines; временный lag между write и read ожидаем.

Компромисс: read performance и tailored views против synchronization complexity и stale reads.

На интервью: когда CQRS избыточен для CRUD service; read model для search page на order events.

Типовые ошибки: CQRS везде без read pain; нет стратегии rebuild read model; dual writes без outbox.

Чеклист:

  • Обоснуйте separate read store конкретными query needs.
  • Проецируйте read models idempotently из events.
  • Планируйте full rebuild из event log.
  • Документируйте staleness для каждого read endpoint.