Search code examples
amazon-web-servicesamazon-sqsdead-letter

Are all the messages in SQS batch sent to Dead Letter Queue after reaching the maximum redrive(Retry) policy number


I have a SQS queue and the consumer of this queue is a lambda and the unprocessed messages are being sent to a Dead Letter Queue with a redrive policy of 10.

My SQS queue's batch size is 5, will all the messages in a particular batch be sent to the DLQ or only the ones which crossed the retry attempt of 10 and didn't process would go to DLQ.

If 3 messages in a batch of 5 got successfully processed, will all 5 go to DLQ or only the 2 that didn't get processed.


Solution

  • The process of sending msgs to DQL is independent of lambda function or its batch setup. SQS evaluates whether a msg should be send to DLQ on per-message basis. It does not depend on your lambda function or how large batches lambda is using.

    So only 2 would be send to DLQ, not entire batch.