Executando verificação de segurança...
1
Carregando publicação patrocinada...
1

Por exemplo um checkout de pagamento, em que eu salvo no banco algumas tabelas e tambem faço operações com api externa para comfirmar a compra. Como to usando varios arquivos nao consigo fazer a transação cobrir todos os casos de maneira convencional, ate tem como funcionar porem gera acoplamento e sinceramente parece gambiarra. To usando nestjs com typeorm.

1

Acho que vc está confundido conceitos, caro amigo.

neste caso vc não está falando apenas de transaction e sim de resiliencia, como deixar minha operação
resiliente
a falhas.

"Chegou uma compra nova na minha API de checkout, preciso fazer algumas operações para validar a compra e enviar as informações da compra para o usuário"

Primeira cosia que eu faria é salvar no meu banco de dados um novo pedido, independente de qualquer operação externa.

Depois eu emitiria um evento chamado newOrder para minhas apis externas, como estoque, logistica, ERP e tudo mais.

Depois do envio de tais eventos, eu colocaria o status do pedido e mudaria para em processamento,

Aguardaria o retorno de todas as APIs externas via hook ou mensageria, depois da conclusão de todas e minha lógica entender que o produto já foi validado, iria emitir um novo evento OrderSuccess que avisaria o meu usuário que de tudo certo.

Faz sentido para vc?