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