Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Aplicação prática do padrão SAGA

Olá pessoal,

Gostaria de saber se existe na Alura existe algum curso que ensine na prática a aplicação do padrão SAGA (com orquestração e coreografia).

Eu procurei em tudo e não encontrei, talvez esteja dentro do conteúdo de alguma vídeo aula sendo abordado, mas eu não encontrei em títulos e nem em descrições.

3 respostas

Olá, Felipe!!

É sempre bom ouvir demandas de conteúdos aqui, nos ajudam a pensar em novos conteúdos e projetos para uma jornada de aprendizado cada vez mais significativa.

Atualmente, temos aplicação no contexto de frontend utilizando o REACT: https://cursos.alura.com.br/course/react-utilizando-arquitetura-saga-redux-saga

Além disso, temos um artigo dedicado ao tema: https://www.alura.com.br/artigos/react-o-que-e-arquitetura-saga

Qualquer dúvida, feedback ou sugestão, estamos à disposição aqui!

Bons estudos!

Mas o SAGA geralmente pelo o que entendi, é um padrão de persistencia de dados para aplicações distribuidas, onde deve-se garantir que uma transação de negócio que envolve mais de um microserviço seja persistido no banco.

Em React á idéia é a mesma?? No React eu não sei se é o mesmo contexto pois imagino que o React seja mais voltado para aplicações de Front-End e não sei se teria conexão direta com Banco de Dados para aplicação do SAGA Pattern.

Há algo mais voltado para Back-End???

É que são muitas opiniões diferentes que vejo sobre o padrão e gostaria de ver na prática como seria a aplicações desse padrão.

solução!

Olá, Felipe!

O padrão SAGA pode ser aplicado em diferentes contextos, mas seu propósito principal está mais relacionado ao back-end em sistemas distribuídos.

O padrão SAGA é um padrão de persistência de dados para sistemas distribuídos, como você mencionou. Ele garante que uma transação de negócio que envolve vários microserviços seja concluída de forma consistente, mesmo que uma parte do processo falhe. Para isso, existem dois modelos principais:

  • Orquestração: Um serviço central (orquestrador) gerencia a sequência de eventos entre os microserviços.
  • Coreografia: Os próprios microserviços comunicam-se entre si, reagindo a eventos.

No back-end, a implementação do SAGA é comum em sistemas de mensageria (RabbitMQ, Kafka) ou usando frameworks de controle de fluxo, como o Spring Cloud no Java. Esse é o cenário clássico do padrão.

No contexto de front-end, como no React, a ideia do SAGA é mais relacionada ao Redux-Saga, que implementa o conceito de middleware para gerenciar os efeitos colaterais de ações, como chamadas assíncronas a APIs.

Embora compartilhem o nome "SAGA", o foco no React está em:

  • Gerenciar fluxos de dados assíncronos, como requisições HTTP.
  • Garantir previsibilidade e organização em fluxos complexos.

Portanto, no React, o padrão é adaptado para gerenciar estado e efeitos colaterais, e não transações distribuídas.

Se você está buscando algo mais voltado para o back-end com aplicações práticas de SAGA, é interessante explorar ferramentas e frameworks como:

  • Spring Boot + Spring Cloud (Java)
  • NestJS ou Express com gerenciadores de eventos (Node.js)
  • Micronaut ou Quarkus para arquiteturas baseadas em microserviços.

Infelizmente, a Alura não possui atualmente um curso direto sobre SAGA no back-end, mas nossa equipe está sempre atenta a novas demandas! Sua sugestão é valiosa e pode abrir portas para a criação de conteúdos futuros.

Bons estudos!