Что такое сага?

Middle+
379 просмотров
AFK Offer AI

Сага — паттерн управления распределёнными транзакциями без двухфазного коммита. Транзакция разбивается на локальные шаги, каждый с компенсирующим действием (откатом).

Пример: заказ в e-commerce: 1. Списать деньги → компенсация: вернуть деньги 2. Зарезервировать товар → компенсация: отменить резерв 3. Создать доставку → компенсация: отменить доставку

Два подхода:

  • Хореография: каждый сервис слушает события и реагирует. Проще, но сложно отслеживать
  • Оркестрация: центральный координатор управляет шагами. Нагляднее, но single point
Если шаг 3 упал — выполняются компенсации 2 и 1 в обратном порядке. Saga обеспечивает eventual consistency вместо strict consistency.

Следующий вопрос

Что такое write-through cache?