☀Объяснение:
Сага – это последовательность локальных транзакций, каждая из которых обновляет данные в одном сервисе. Если шаг не удаётся, запускаются компенсирующие транзакции для отката предыдущих шагов.
В примере:
Сервис склада резервирует товар.
Сервис платежей списывает деньги. Если ошибка → сервис склада компенсирует резерв (отменяет резерв).
Двухфазная фиксация (2PC) медленна и не масштабируется. Общая БД – антипаттерн.
Реальный кейс: В Uber используется Saga для согласования поездки: создание заказа, поиск водителя, списание средств. При сбое любого этапа запускается компенсация.
Вывод: Для распределённых транзакций в микросервисах аналитик должен требовать Saga с явными компенсациями.
Post #12128
444