Estudando o Padrão Fan-Out com AWS: Um Desafio Prático
O padrão arquitetural Fan-Out é amplamente utilizado em sistemas distribuídos para permitir que uma única mensagem ou evento desencadeie múltiplas ações em paralelo. Esse conceito é essencial em arquiteturas modernas, pois possibilita escalabilidade, processamento paralelo e desacoplamento entre componentes.
Segundo o Cambridge Dictionary, fan-out significa "spread out from a central point" ("espalhar-se a partir de um ponto central"), o que traduz bem a ideia central do padrão: uma mensagem originada em um ponto se ramifica para vários destinos simultaneamente.
Neste artigo, apresento uma forma prática de aprender e aplicar esse padrão utilizando três serviços serverless da AWS: Lambda, SQS e SNS. O aprendizado será estruturado em três artigos complementares que, juntos, formam um desafio prático para entender e implementar o conceito de Fan-Out.
Como o Fan-Out Será Explicado?
Para compreender o padrão Fan-Out na prática, você será guiado por três artigos. Cada um aborda um serviço da AWS fundamental para implementar esse padrão. É importante seguir a ordem para aproveitar ao máximo o aprendizado:
1️⃣ Introdução ao AWS Lambda
Neste primeiro artigo, você aprenderá sobre o AWS Lambda, o serviço de computação serverless da AWS. Ele será usado como o ponto inicial para o disparo de eventos no padrão Fan-Out. Com o Lambda, você criará funções que processam eventos e disparam mensagens para outros serviços.
Observação: Importante ressaltar que o desafio é constituído de algumas reformulações do desenho de arquitetura inicialmente proposto. Logo, chegaremos a um ponto nesse primeiro artigo, mas no segundo já iniciamos a primeira reformulação a partir dos novos conceitos adicionados.
2️⃣ Introdução ao Amazon Simple Queue Service (SQS)
No segundo artigo, você conhecerá o SQS, o serviço de fila da AWS. Ele será utilizado como um dos destinos para as mensagens disparadas pelo Lambda, permitindo o armazenamento temporário e o processamento assíncrono de mensagens.
Observação: retomando a observação inicial, aqui encontramos o mesmo cenário. Vamos evoluir até um ponto B do nosso desenho de arquitetura, o qual logo em seguida será reformulado mais uma vez.
3️⃣ Introdução ao Amazon Simple Notification Service (SNS)
Por fim, o terceiro artigo aborda o SNS, o serviço de notificações da AWS. Ele será utilizado para distribuir as mensagens para múltiplos destinos simultaneamente, completando a arquitetura Fan-Out.
O Desafio Prático
O objetivo deste desafio é implementar uma arquitetura Fan-Out onde:
Um evento inicial dispara uma função Lambda.
A função Lambda envia mensagens para um tópico SNS.
O SNS distribui essas mensagens para diferentes destinos, incluindo uma fila SQS.
Uma função Lambda recebe o evento da fila.
Com essa prática, você entenderá como cada serviço desempenha um papel fundamental na construção de sistemas escaláveis, desacoplados e resilientes.
Conclusão
O padrão Fan-Out é uma estratégia poderosa em sistemas distribuídos e, ao final deste desafio, você terá uma visão clara de como utilizá-lo na AWS utilizando Lambda, SQS e SNS.
Espero que esses artigos sejam úteis e ajudem você a explorar na prática os conceitos de arquitetura serverless. Não deixe de compartilhar suas dúvidas e resultados nos comentários!
Boa leitura e bons estudos! 🚀
Subscribe to my newsletter
Read articles from Marcelo Amorim directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Marcelo Amorim
Marcelo Amorim
Senior Software Engineer - Java, Spring and AWS