Глоссарий

CQRS

CQRS (Command Query Responsibility Segregation) — паттерн разделения моделей чтения и записи. Commands изменяют состояние, Queries — читают его. Они используют разные модели, а иногда и разные хранилища.

Зачем

Чтение и запись имеют разные требования: запросы на чтение — сложные JOIN-ы и агрегации; команды — транзакционная целостность. Разделение позволяет оптимизировать каждое независимо.

Простой CQRS

Одна БД, но разные классы: CreateOrderCommand и OrderSummaryQuery. Минимальная сложность, но уже даёт структуру.

Полный CQRS с Event Sourcing

Write-side хранит события (Event Store), read-side строит денормализованные проекции для чтения. Высокая сложность, но полный audit trail и возможность «перемотать» состояние.

Предостережение

CQRS добавляет сложность. Оправдан в сложных доменах с разной нагрузкой на чтение и запись. Для CRUD-приложений — лишний.