🔄 Saga Pattern
Coordenação de operações multi-serviço com compensating transactions
Saga resolve transações distribuídas sem 2PC. Em vez de rollback atômico, você usa compensating transactions — operações que desfazem etapas anteriores.
| Aspecto | Choreography | Orchestration |
|---|---|---|
| Coordenação | Descentralizada — cada serviço reage a eventos | Centralizada — um orquestrador controla |
| Acoplamento | Baixo | Médio — ao orquestrador |
| Visibilidade do fluxo | Difícil — distribuído | Alta — tudo em um lugar |
| Compensação | Cascata de eventos | Explícita no orquestrador |
| Quando usar | Fluxos simples, poucos serviços | Fluxos 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.