Как организовать транзакцию между двумя микросервисами? Что такое Saga и как она работает?

Saga разбивает общий бизнес-процесс на локальные транзакции сервисов. При ошибке выполняются предусмотренные компенсации, а не общий rollback всех баз данных.

Короткий ответ

Что ответить на собеседовании

Saga разбивает общий бизнес-процесс на локальные транзакции сервисов. При ошибке выполняются предусмотренные компенсации, а не общий rollback всех баз данных.

Подробный разбор

Ответ с пояснениями

Saga разбивает общий бизнес-процесс на локальные транзакции сервисов. При ошибке выполняются предусмотренные компенсации, а не общий rollback всех баз данных.

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее