1
resposta

Como funciona transaction em relação aos serviços agregados?

Olá, primeiramente, gostaria de dizer que este curso foi muito bem ministrado.Além disso, gostei do conteúdo do curso de ter uma visão "macro". Parabéns. (Eu já terminei o curso, mas tive uma dúvida).

A minha questão é a seguinte:

Dado um cenário onde 3 microservices interagem e precisam salvar valores em suas respectivas database.

  • O microservice A executou com sucesso;
  • O mcroservice B executou com sucesso;
  • O microservice C gerou erro ao salvar as informações;

Como o microservice C gerou erro e não conseguiu salvar as informações, os outros dois microservices (A,B) DEVERIAM dar rollback nos dados salvos.

Em aplicações monolíticas fazemos isso com "transactions, commit e rollback".

Como isto é feito na arquitetura Microservice?

1 resposta

Olá Maikon, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Fico feliz em poder ler o seu feedback sobre o curso, ele é muito importante para o aprimoramento contínuo dos produtos Alura.

Para este cenário descrito, é possível aplicar o padrão Saga, que é uma abordagem comum para tratar transações distribuídas em arquiteturas de microsserviços. Este padrão permite coordenar ações entre vários microsserviços de forma consistente, mesmo quando ocorrem falhas.

No padrão Saga, cada ação em um microsserviço desencadeia uma sequência de eventos que pode incluir chamadas a outros microsserviços. Esses eventos são registrados em uma "saga", que é responsável por orquestrar e coordenar as etapas da transação. Se ocorrer um erro em uma etapa, a saga pode emitir comandos de compensação para desfazer as alterações feitas nas etapas anteriores. Isso permite que os microsserviços mantenham a consistência dos dados, mesmo em cenários distribuídos e com possíveis falhas.

Nos artigos abaixo é abordado com detalhes como aplicar o padrão Saga para microsserviços:

Observação: O conteúdo recomendado está em inglês, comum na área da tecnologia, utilize o tradutor para melhor compreensão.

Espero que esta resposta seja um bom ponto de partida para o seu projeto. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!