Como o SQS funciona?
O SQS é um sistema serveless de fila da AWS, o que significa que você não precisa se preocupar com infraestrutura, escalabilidade ou manutenções.
No nosso diagrama atualizado, teremos o seguinte workflow:
- Quando o cliente efetua um novo pedido, O Marketplace enviará esta ordem para a fila SQS (e não mais para o Checkout)
- A mensagem enviada se tornará disponível para ser consumida ao chegar na fila SQS
- O Checkout pode estar com seu processamento no máximo e não consegue receber novas mensagens naquele momento. Isso não é mais um problema, porque assim que ele conseguir dar vazão à sua carga ele poderá resgatar as mensagens que estão disponíveis na fila.
Perceba que desacoplamos os dois serviços e adicionamos um maior nível de confiabilidade nesse processo já que mesmo que nosso Checkout saia do ar, ele consegue retornar e começar a processar as mensagens que não conseguiu. Isso, senhores(as), é resiliência na prática.
Recaptulando, o SQS funciona em modelo de enfileiramento, em que temos duas entidades importantes:
- Os produtores (producers), que geram o dado que será enviado para o SQS [send message]. No nosso caso, o Marketplace é o producer.
- Os consumidores (consumers), que leem as mensagens da fila SQS e as processam [receive message]— neste momento, os consumidores podem eliminar a mensagem da fila, dessa forma, não haverá processamentos posteriores duplicados. Em nosso exemplo é o Checkout que é o consumer.
Além disso, existem dois tipos de filas SQS. Apesar de que há várias algumas outras diferenças de ordem prática entre elas, lembre, por hora, que:
- Fila do tipo standard não preserva a ordem de recebimento das mensagens e pode entregá-las mais de 1 vez
- Fila do tipo FIFO (First-In, First-Out) garante a ordenação das mensagens conforme elas chegarem na fila entregando-as exatamente 1 vez aos consumers
Saber qual a característica de seu sistema te ajudará a saber qual o tipo de fila escolher. Mas saiba que em geral o Standard é o must-go até que haja um motivo que faça a FIFO ser realmente ideal.
Próximos passos
Agora você já é capaz de identificar cenários em que a utilização de filas SQS pode ajudar a trazer mais confiabilidade a seus sistemas. No próximo artigo discutiremos conceitos mais avançados sobre uso de delas e algumas dicas de uso.