Как реализовать Saga Orchestration без специального фреймворка?

Senior
213 просмотров
AFK Offer AI

State machine в БД: таблица sagas с полями state (enum), created_at, current_step, payload. SagaOrchestrator — Spring компонент, обрабатывает события (OrderConfirmed → PaymentRequested → InventoryReserved → ShipmentScheduled). При каждом шаге: обновить state в БД (транзакционно с основным действием), отправить следующую команду. Таблица sagas + polling для recovery при рестарте. Компенсация: при ошибке на шаге N — выполнить компенсирующие шаги N-1..1.

Следующий вопрос

Что такое rolling updates для баз данных и почему это сложно?