456просмотров
27.0%от подписчиков
23 февраля 2026 г.
Score: 502
Что такое CQRS и зачем его вообще используют CQRS редко обсуждают в начале пути.
Но в крупных системах он появляется почти всегда. CQRS = Command Query Responsibility Segregation.
Разделение чтения и записи. Как обычно устроено приложение:
У тебя есть один сервис.
Он:
• записывает данные
• читает данные
• обновляет данные
• удаляет данные Работает нормально… пока проект маленький.
Но,Чтение и запись — это разные задачи. Запись:
нужна валидация
нужны проверки
нужны транзакции Чтение:
нужна скорость
нужны сложные JOIN
нужны агрегации Что предлагает CQRS Разделить. Одна модель отвечает за команды (создать, изменить, удалить).
Другая модель отвечает за запросы (получить данные). Пример: POST /create-user → обрабатывается командной моделью
GET /users → обрабатывается моделью чтения И это могут быть вообще разные структуры данных. Зачем так усложнять 1. Можно отдельно масштабировать чтение Если 95% нагрузки это GET-запросы — масштабируем только read-часть 2. Можно хранить read-модель в другом формате Например, write в PostgreSQL а read в Elasticsearch 3. Можно строить очень быстрые дашборды без сложных вычислений в реальном времени CQRS не делает код “красивее”,но делает проект более масштабируемым.