🔥 Как управлять данными и транзакциями в распределенных системах Что это? Паттерн, разделяющий операции записи (команды) и чтения (запросы) данных. У каждой части — своя модель данных и часто даже своя база. Пример: Паттерн для управления распределенными транзакциями в микросервисах. Гарантирует согласованность данных между сервисами без использования ACID-транзакций (которые невозможны в распределенных системах). В микросервисах: 1. Choreography (Хореография) Каждый сервис самостоятельно запускает следующие шаги и обрабатывает ошибки через события. Как работает: Сервис А выполняет действие → публикует событие. Сервис Б слушает событие → выполняет свое действие → публикует новое событие. Если ошибка → сервис публикует событие-компенсацию. Пример Saga для заказа: CopyOrderService → Создает заказ → публикует «OrderCreated». InventoryService → Резервирует товар → публикует «InventoryReserved». PaymentService → Списание денег → публикует «PaymentCompleted». Если оплата не прошла → P
CQRS и Saga: Подробный разбор паттернов для микросервисов
1 марта 20251 мар 2025
172
3 мин