Como implementar transações distribuídas com Saga Pattern: exemplos práticos, desafios e soluções