A saga manages a business transaction that spans multiple services as a sequence of local transactions. If a step fails, the saga runs compensating transactions to undo prior steps — there is no distributed rollback.
Why not a distributed transaction?
Two-phase commit across services is slow, locks resources, and couples availability. Sagas give eventual consistency without distributed locks.
