advanced

Saga pattern

Координируйте long-running workflows через local transactions, events или commands и compensating actions вместо одной global transaction.

Saga координирует long-running business process последовательностью local transactions, каждая с compensating action при сбое следующего шага. Orchestration — central coordinator; choreography — events и каждый сервис знает свою роль.

Компромисс: нет global lock, но compensations — business logic (cancel shipment, partial refund) и могут быть неидеальны, если user уже видел success.

На интервью: спроектируйте trip booking saga с payment, seat hold и notification; укажите compensating steps и visibility сбоев.

Типовые ошибки: compensations не отменяют user-visible effects; нет idempotency на шагах saga; нет persistent saga state для recovery.

Чеклист:

  • Явно моделируйте forward steps и compensations.
  • Сохраняйте saga state и outcomes шагов.
  • Каждый шаг idempotent.
  • Orchestration vs choreography по ясности процесса.