Transação distribuída
Transação que abrange vários bancos de dados ou serviços. Solução clássica: 2PC (Two-Phase Commit) via protocolo XA. Notoriamente complexa: falha do coordenador trava transações, e a performance sofre com as idas e voltas de rede.
Casos de uso: transferência entre dois bancos, fechamento de pedido que envolve o banco de pedidos e o de estoque ao mesmo tempo. Microsserviços modernos evitam transações distribuídas — preferem o padrão Saga (ações compensatórias) ou event sourcing. Coordenadores XA: Atomikos, Narayana (JBoss), MS DTC. O PostgreSQL suporta XA via Java/JTA. Spanner e CockroachDB tornam transações distribuídas transparentes internamente, via Paxos/Raft. Trade-off do teorema CAP: consistência forte entre vários nós custa disponibilidade pior durante partições de rede.