You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -110,8 +113,11 @@ Both have nearly the same behaviour when it comes to processing messages from th
110
113
***Entire batch has been successfully processed**, where your Lambda handler returned successfully, we will let SQS delete the batch to optimize your cost
111
114
***Entire Batch has been partially processed successfully**, where exceptions were raised within your `SqsMessageHandler` interface implementation, we will:
112
115
-**1)** Delete successfully processed messages from the queue by directly calling `sqs:DeleteMessageBatch`
113
-
-**2)** if, non retryable exceptions occur, messages resulting in configured exceptions during processing will be immediately moved to the dead letter queue associated to the source SQS queue or deleted from the source SQS queue if `deleteNonRetryableMessageFromQueue` is set to `true`.
114
-
-**3)** Raise `SQSBatchProcessingException` to ensure failed messages return to your SQS queue
116
+
-**2)** If a message with a [message group ID](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html) fails,
117
+
the processing of the batch will be stopped and the remainder of the messages will be returned to SQS.
118
+
This behaviour [is required to handle SQS FIFO queues](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-batchfailurereporting).
119
+
-**3)** if non retryable exceptions occur, messages resulting in configured exceptions during processing will be immediately moved to the dead letter queue associated to the source SQS queue or deleted from the source SQS queue if `deleteNonRetryableMessageFromQueue` is set to `true`.
120
+
-**4)** Raise `SQSBatchProcessingException` to ensure failed messages return to your SQS queue
115
121
116
122
The only difference is that **SqsUtils Utility API** will give you access to return from the processed messages if you need. Exception `SQSBatchProcessingException` thrown from the
117
123
utility will have access to both successful and failed messaged along with failure exceptions.
0 commit comments