2 Answers
- Newest
- Most votes
- Most comments
0
The answer I got from enterprise AWS support is that this is expected behaviour. No explanation as to why, unfortunately.
answered 5 months ago
0
You make a good point. When SQS batches messages for processing, it is possible for messages with lower lineage values to take on the maximum lineage of the batch, potentially causing premature dropping.
There are some thing you can try when setting up SQS.
- Keeping batch sizes small to a target of 5 or less may help.
- Using message groups in FIFO queues to further isolate message processing.
- Making message processing idempotent so it doesn't matter if a message is processed multiple times.
- Consider adding more queues or sharding to split message load across multiple queues.
- Increasing visibility timeout to reduce frequency of polling. Giving processes more time may alleviate some batching issues.
- Using dead letter queues (DLQ) to hold and reprocess failed messages separately from the main queue.
I hope this helps.
Relevant content
- asked a year ago
- asked a year ago
- AWS OFFICIALUpdated 8 months ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 3 years ago