Sobes.tech
Назад к вопросам
Middle+
3

Что такое паттерн Saga?

Компании, где спрашивали
Magnit Tech

Ответ от нейросети

sobes.tech AI

Паттерн Saga используется для управления распределёнными транзакциями в микросервисной архитектуре, где традиционные транзакции ACID невозможны.

Идея в том, что большая бизнес-операция разбивается на серию локальных транзакций, каждая из которых выполняется в отдельном сервисе. Если одна из транзакций неудачна, то предыдущие успешно выполненные транзакции компенсируются (откатываются) с помощью компенсирующих действий.

Таким образом, Saga обеспечивает согласованность данных через последовательность шагов и компенсирующих операций, вместо единой атомарной транзакции.

Пример:

  1. Заказ создаётся в сервисе заказов.
  2. Резервируется товар в сервисе склада.
  3. Списываются деньги в сервисе платежей.

Если, например, списание денег не удалось, то выполняются компенсирующие операции:

  • отменяется резерв товара,
  • отменяется заказ.

Это позволяет поддерживать целостность данных в распределённой системе без блокировок и долгих транзакций.