Назад к вопросам
Senior
7
Что такое Saga паттерн, как он работает и для чего нужен?
Компании, где спрашивали
Octo
Ответ от нейросети
sobes.tech AI
Saga паттерн — это архитектурный подход для управления распределёнными транзакциями в микросервисах, где классические ACID-транзакции невозможны или нежелательны.
Как работает:
- Сага состоит из последовательности локальных транзакций в разных сервисах.
- Каждая локальная транзакция имеет компенсирующую операцию (откат).
- Если одна из транзакций неудачна, запускаются компенсирующие транзакции для отмены уже выполненных шагов, чтобы вернуть систему в консистентное состояние.
Для чего нужен:
- Обеспечивает согласованность данных в распределённых системах без блокировок.
- Позволяет обрабатывать ошибки и откаты на уровне бизнес-логики.
Пример: при оформлении заказа сначала резервируется товар, затем списываются деньги. Если списание денег не удалось, выполняется компенсирующая транзакция — отмена резерва товара.
В Java это можно реализовать с помощью оркестратора (центрального контроллера) или хореографии (событий между сервисами).