SQS: Duplicidade de mensagens na fila

Evitar mensagens duplicadas na fila pode ser um requisito básico para o modelo do seu negócio. A SQS possui um recurso de "desduplicação" de mensagens bem interessante. Este recurso está presente apenas em filas do tipo FIFO Existe duas formas de configurar: 1. Na configuração da fila, habilite a opção Desduplicação baseada em conteúdo 2. Uma outra forma de configurar seria no ato do envio da mensagem. Neste caso a fila não precisa ser configurada conforme o item 1. Segue um trecho de código Java utilizando a SDK da AWS que exemplifica este cenário: AmazonSQS amazonSQS = AmazonSQSClientBuilder.standard()
.withRegion(Regions.US_EAST_1)
.build();

SendMessageRequest messageRequest = new SendMessageRequest();
messageRequest.setMessageBody("mensagem");
messageRequest.setMessageGroupId("id-grupo");
messageRequest.setMessageDeduplicationId("id-desduplicação");
messageRequest.setQueueUrl("url-da-fila");
amazonSQS.sendMessage(messageRequest); Neste caso é necessário atribuir um ID que identifica a mensagem como duplicada, conforme o trecho: messageRequest.setMessageDeduplicationId("id-desduplicação"); O código descrito no item 2 pode ser utilizado para o item 1, mas nesse caso, o trecho anterior é opcional. Ponto de atenção Este recurso só funciona quando mensagens de mesmo conteúdo são enviadas em um intervalo de até 5 minutos. Caso o intervalo entre elas seja maior que 5 minutos, a fila receberá a mensagem duplicada.

SQS: Duplicidade de mensagens na fila