Loading...
Обратимые действия и компенсация (сага агента)(Saga)
Паттерн, позволяющий безопасно отменять побочные эффекты агента. Структурируйте траекторию как сагу: каждое прямое действие (забронировать рейс, списать средства с карты, создать запись) сопровождается компенсирующим действием, которое отменяет его бизнес-эффект, а каждый инструмент делается идемпотентным с помощью ключа идемпотентности, чтобы повторная попытка или откат приводили к тому же конечному состоянию, а не дублировали работу. Когда шаг завершается сбоем на полпути, агент выполняет компенсации уже завершённых шагов в обратном порядке, вместо того чтобы оставить систему в наполовину применённом состоянии. Автоматического ACID-отката между сервисами не существует, поэтому компенсации явно проектируются как логическая противоположность каждого действия. В отличие от `durable-execution`: тот сохраняет и воспроизводит запуск, чтобы он мог продолжиться до завершения после сбоя, тогда как этот паттерн определяет, как семантически отменить уже зафиксированные побочные эффекты, когда доведение до завершения перестаёт быть правильным исходом.
In 30 seconds
- What
- Сопоставляет каждому прямому действию явное компенсирующее действие, отменяющее его бизнес-эффект, и использует ключи идемпотентности, чтобы повторы и откаты сходились к одному состоянию.
- When to use
- Многошаговые рабочие процессы между сервисами, где сбой на середине требует отменить уже зафиксированные побочные эффекты без автоматического ACID-отката.
- Watch out
- Компенсации должны быть написаны верно и оставаться доступными; сломанная или отсутствующая компенсация оставляет систему в несогласованном состоянии без автоматического восстановления.
Loading technique guide…