SA Шпаргалка

Все ответы в 2 клика

Продвинутый

Какие проблемы возникают при реализации компенсирующих транзакций в паттерне Saga?

Паттерн Saga откатывает распределенную транзакцию, вызывая компенсирующие действия. Но это не так просто, как SQL ROLLBACK.

Проблемы:
1. Отсутствие изоляции: Пока Сага не завершилась, другие транзакции могут прочитать промежуточные (грязные) данные. Пример: Сага начислила бонусы, юзер успел их потратить, а потом Сага упала и попыталась откатить бонусы, но баланс уже ушел в минус.
2. Сбой самой компенсации: Что делать, если компенсирующая транзакция (возврат денег) упала из-за ошибки сети? Решение: Компенсации обязаны быть идемпотентными и ретраиться до бесконечности (пока не пройдут успешно).

Ещё вопросы раздела «Микросервисы»

Все вопросы раздела «Микросервисы»