The message is processed without any error from the function, and the service deletes the message from the queue.
The Message retention period is reached and SQS deletes the message from the queue.
There is a
dead-letter queue
(DLQ) configured and SQS sends the message to this queue. It’s best practice to enable a DLQ on an SQS queue to prevent any message loss.
Lambda does not delete messages from the queue unless there is a successful invocation. By default, if any messages in a batch fail, all messages are returned to the original queue for reprocessing. including messages that Lambda processes successfully. Specify individual message failures using
batchItemFailures
in the function response. Only the failed items are then reprocessed.
In an application under heavy load or with spiky traffic patterns, it’s recommended that you: