CQRS разделяет модели и обработчики изменения состояния и чтения. В обычном CRUD одна модель часто обслуживает оба вида операций; CQRS позволяет независимо оптимизировать их под разные требования.
Чем паттерн CQRS (Command Query Responsibility Segregation) отличается от классической архитектуры CRUD-приложений? Когда его внедрение оправдано?
CQRS разделяет модели и обработчики изменения состояния и чтения. В обычном CRUD одна модель часто обслуживает оба вида операций; CQRS позволяет независимо оптимизировать их под разные требования.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
CQRS разделяет модели и обработчики изменения состояния и чтения. В обычном CRUD одна модель часто обслуживает оба вида операций; CQRS позволяет независимо оптимизировать их под разные требования.
Разделение не требует разных баз, очереди или Event Sourcing: начать можно внутри одного приложения и хранилища. Отдельная read-модель полезна для сложных представлений и существенно отличающейся нагрузки на чтение. Цена — дополнительный код, синхронизация, возможное отставание проекций и более сложная диагностика. Для простого справочника без таких проблем обычный CRUD обычно проще и достаточен.
Источник: learn.microsoft.com.