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