The Saga pattern is the industry standard for maintaining eventual consistency across microservices without distributed two-phase commits (2PC). In a Saga, a sequence of local transactions executes across domain boundaries. If any step fails forward execution, the Saga orchestrator (such as Temporal ) executes compensating transactions in reverse order to undo previously committed changes.
However, modern distributed systems face a critical failure mode: The Failed Compensation Paradox . What happens when a compensating action itself fails?
For instance, in a Payment Execution workflow, if a downstream ledger debit succeeds, but a subsequent sanctions check fails, the orchestrator triggers a compensating refund activity.β¦