1
resposta

Como o SQS sabe que a mensagem não foi processada?

Pode ser que eu esteja me antecipando e que a resposta esteja nos próximos vídeos. Acabei de assistir a aula sobre as filas DLQ e não entendi como o SQS vai saber que a mensagem não foi processada, para encaminhar para esta outra fila.

1 resposta

Olá, Julio, tudo bem?

Sua dúvida é super válida, e fico feliz que esteja acompanhando com atenção.

O SQS usa um mecanismo chamado "contador de recebimento" para lidar com isso. Funciona assim:

Quando uma mensagem é enviada para a fila, ela pode ser recebida por uma aplicação para ser processada. Se a aplicação não conseguir processar com sucesso, seja por erro ou por não confirmar o processamento dentro do tempo limite (visibility timeout), essa mensagem volta para a fila.

Cada vez que isso acontece, o contador de recebimento da mensagem é incrementado. Você pode configurar um número máximo de tentativas. Quando esse número é atingido, o SQS entende que há um problema com a mensagem e a move automaticamente para a DLQ (Dead Letter Queue), se estiver configurada.

Por exemplo: se você definir o limite como 3, após três falhas a mensagem será direcionada para a DLQ. Assim, você evita que mensagens problemáticas fiquem travando o processamento da fila principal e pode analisá-las separadamente depois.

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!