Tipos de fila SQS
Há dois tipos de fila SQS e você deve conhecer bem ambas para decidir o que cabe melhor no seu caso de uso
A fila padrão SQS garante que as mensagens enviadas a ela serão entregues ao menos uma vez ao destino, ou seja, é possível que haja duplicatas. Outra característica é que há a possibilidade de entrega das mensagens fora da ordem que foram enviadas. A AWS tentará preservar a ordem (best-effort ordering) mas em muitos casos não será possível.
Na prática isso significa dizer que se você enviar 3 mensagens com os conteúdos [“olá”, “bom”, “dia”] para uma SQS padrão é possível que elas sejam disponibilizadas como [“dia”, “olá”, “bom”]. Ou seja, você não pode confiar em ordenação em filas SQS padrão.
Dessa forma, atente-se para dois pontos principais ao arquitetar suas soluções:
- Idempotência: seu sistema deve ser capaz de lidar com mensagens duplicadas sem que um comportamento estranho seja iniciado
- Seu sistema precisa saber lidar com mensagens desordenadas (ou você precisaria ordená-las de algumas forma)
Como esse tipo de fila SQS não se preocupa com ordenação das mensagens você é beneficiado com um altíssimo throughput (quase que ilimitado segundo a própria AWS). Além disso, você conta com uma latência baixíssima de cerca de < 10ms entre publicação e disponibilização de mensagens.