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