Saga resolve transações distribuídas sem 2PC. Em vez de rollback atômico, você usa compensating transactions — operações que desfazem etapas anteriores.
AspectoChoreographyOrchestration
CoordenaçãoDescentralizada — cada serviço reage a eventosCentralizada — um orquestrador controla
AcoplamentoBaixoMédio — ao orquestrador
Visibilidade do fluxoDifícil — distribuídoAlta — tudo em um lugar
CompensaçãoCascata de eventosExplícita no orquestrador
Quando usarFluxos simples, poucos serviçosFluxos complexos, necessidade de auditoria
❓ Qual usar numa migração de legado?
Orchestration. Durante migração você precisa de visibilidade total e compensações explícitas. Com legado e novo no mesmo fluxo, o orquestrador serve como ponto central de auditoria. Choreography é difícil de debugar quando o fluxo está distribuído entre dois sistemas.