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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!