Альтернатива Saga зависит от требований: единая локальная транзакция, двухфазный commit, TCC или изменение границ сервисов. Универсальной замены с теми же свойствами нет.
Какая есть альтернатива Saga?
Альтернатива Saga зависит от требований: единая локальная транзакция, двухфазный commit, TCC или изменение границ сервисов. Универсальной замены с теми же свойствами нет.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Альтернатива Saga зависит от требований: единая локальная транзакция, двухфазный commit, TCC или изменение границ сервисов. Универсальной замены с теми же свойствами нет.
Если данные можно держать в одном transactional boundary, обычная транзакция проще и надёжнее компенсаций. 2PC даёт согласованный commit между поддерживающими участниками, но увеличивает связанность и чувствительность к отказам. TCC разделяет резервирование, подтверждение и отмену, требуя специального бизнес-контракта. Outbox решает надёжную публикацию событий, но сам по себе не заменяет распределённый бизнес-процесс. Сначала определяют, нужна ли строгая атомарность или допустимы промежуточные состояния и компенсации.