23 lines
2.6 KiB
Markdown
23 lines
2.6 KiB
Markdown
---
|
||
aliases:
|
||
tags:
|
||
- зрелость/🌱
|
||
date: "[[2023-10-16]]"
|
||
zero-link:
|
||
- "[[00 Архитектура ПО]]"
|
||
parents:
|
||
linked: []
|
||
---
|
||
CQRS, или Command Query Responsibility Segregation, это шаблон проектирования, который разделяет операции чтения и записи в системе на два отдельных интерфейса. Это отличается от более традиционного подхода, где один объект или интерфейс отвечает за оба вида операций.
|
||
|
||
Основная идея CQRS заключается в следующем:
|
||
|
||
- **Команды (Commands)** - это операции, которые изменяют состояние системы, но не возвращают значения. Примерами команд могут быть "Добавить элемент в корзину", "Обновить профиль пользователя" и т.д.
|
||
- **Запросы (Queries)** - это операции, которые возвращают данные, но не изменяют состояние системы. Примерами запросов могут быть "Получить список товаров в корзине", "Получить информацию о пользователе" и т.д.
|
||
|
||
При использовании CQRS вы можете оптимизировать вашу систему для различных требований, связанных с чтением и записью. Например, вы можете оптимизировать ваш интерфейс команд для быстрого и эффективного обновления данных, в то время как интерфейс запросов можно оптимизировать для быстрого чтения и представления данных.
|
||
|
||
CQRS часто используется в сочетании с событийно-ориентированной архитектурой и шаблоном проектирования Event Sourcing. Однако стоит отметить, что CQRS - это продвинутый шаблон проектирования, и его стоит использовать только тогда, когда преимущества, которые он приносит, перевешивают дополнительную сложность, которую он вносит в систему.
|
||
|
||
CQRS с использованием кафки.
|
||
![](Pasted%20image%2020240820142406.png) |