Estudando o Padrão Fan-Out com AWS: Um Desafio Prático

Marcelo AmorimMarcelo Amorim
3 min read

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:

  1. Um evento inicial dispara uma função Lambda.

  2. A função Lambda envia mensagens para um tópico SNS.

  3. O SNS distribui essas mensagens para diferentes destinos, incluindo uma fila SQS.

  4. 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! 🚀

0
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