Что такое паттерн Saga?
Answer from AI
sobes.tech AI
Паттерн Saga используется для управления распределёнными транзакциями в микросервисной архитектуре, где традиционные транзакции ACID невозможны.
Идея в том, что большая бизнес-операция разбивается на серию локальных транзакций, каждая из которых выполняется в отдельном сервисе. Если одна из транзакций неудачна, то предыдущие успешно выполненные транзакции компенсируются (откатываются) с помощью компенсирующих действий.
Таким образом, Saga обеспечивает согласованность данных через последовательность шагов и компенсирующих операций, вместо единой атомарной транзакции.
Пример:
- Заказ создаётся в сервисе заказов.
- Резервируется товар в сервисе склада.
- Списываются деньги в сервисе платежей.
Если, например, списание денег не удалось, то выполняются компенсирующие операции:
- отменяется резерв товара,
- отменяется заказ.
Это позволяет поддерживать целостность данных в распределённой системе без блокировок и долгих транзакций.