Saga разбивает общий бизнес-процесс на локальные транзакции сервисов. При ошибке выполняются предусмотренные компенсации, а не общий rollback всех баз данных.
Как организовать транзакцию между двумя микросервисами? Что такое Saga и как она работает?
Saga разбивает общий бизнес-процесс на локальные транзакции сервисов. При ошибке выполняются предусмотренные компенсации, а не общий rollback всех баз данных.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Saga разбивает общий бизнес-процесс на локальные транзакции сервисов. При ошибке выполняются предусмотренные компенсации, а не общий rollback всех баз данных.
Шаги координируют оркестратором либо событиями. Состояние процесса сохраняют устойчиво, команды делают идемпотентными, таймауты и неопределённые результаты разбирают отдельно. Компенсация — бизнес-действие, которое тоже может не удаться. Если нужна строгая атомарность, сначала рассмотрите перенос инварианта в одну транзакционную границу, а не называйте Saga заменой ACID.