Sobes.tech
Back to questions
Senior
6

Что такое Saga паттерн, как он работает и для чего нужен?

Companies where asked
Octo

Answer from AI

sobes.tech AI

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

Как работает:

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

Для чего нужен:

  • Обеспечивает согласованность данных в распределённых системах без блокировок.
  • Позволяет обрабатывать ошибки и откаты на уровне бизнес-логики.

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

В Java это можно реализовать с помощью оркестратора (центрального контроллера) или хореографии (событий между сервисами).