На странице собраны вопросы по Saga — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: saga, redux, backend.
Saga — последовательность локальных транзакций с компенсациями вместо общей ACID-транзакции. Оркестратор управляет шагами явно; при хореографии участники реагируют на события друг друга.
Альтернатива Saga зависит от требований: единая локальная транзакция, двухфазный commit, TCC или изменение границ сервисов. Универсальной замены с теми же свойствами нет.
Saga — последовательность локальных транзакций разных сервисов с компенсирующими действиями при неудаче. Основные варианты — оркестрация и хореография.
Saga разбивает общий бизнес-процесс на локальные транзакции сервисов. При ошибке выполняются предусмотренные компенсации, а не общий rollback всех баз данных.
В Saga используют оркестрацию с координатором или хореографию через события. Выбор объясняют сложностью процесса, наблюдаемостью и автономностью сервисов.
Redux Saga — middleware для координации эффектов через генераторы; yield передаёт описание операции runner, который выполняет её и возвращает результат.