Простыми словами
Подход, при котором операции изменения состояния и операции чтения проектируются отдельно. Это позволяет независимо оптимизировать их модели, но добавляет сложность синхронизации. Например, запись заказа проходит через командную модель, а экран списка может читать отдельную проекцию, подготовленную для быстрых запросов. Поэтому заранее определяют правила чтения, записи и восстановления - иначе параллельные операции могут оставить данные в состоянии, которого бизнес не ожидал.
Механизм действия
Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.
Пример в работе
Решение принимают без учета механизма «CQRS», оценивая только ближайший эффект.
Перед изменением проверяют, как «CQRS» влияет на ограничения, стимулы, зависимости и вторичные последствия.
Ограничения
«CQRS» объясняет только часть происходящего в области «Базы данных и данные». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.
Источник
Martin Fowler, “CQRS”, 2011.