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.