Troubleshoot FIFO throttling issues in Amazon SQS - Amazon Simple Queue Service
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Troubleshoot FIFO throttling issues in Amazon SQS

By default, FIFO queues support 300 transactions per second, per API action for SendMessage, ReceiveMessage, and DeleteMessage. Requests over 300 TPS get the ThrottlingException error even if messages in the queue are available. To mitigate this, you can use following methods:

  • Enabling high throughput for FIFO queues in Amazon SQS.

  • Use the Amazon SQS API batch actions SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch to increase the TPS limit of up to 3,000 messages per second per API action, and to reduce cost. For the ReceiveMessage API, set the MaxNumberofMessages parameter to receive up to ten messages per transaction. For more information, see Amazon SQS batch actions.

  • For FIFO queues with high throughput, follow the recommendations to optimize partition utilization. Send messages with the same message group IDs in batches. Delete messages, or change the message visibility timeout values in batches with receipt handles from the same ReceiveMessage API requests.

  • Increase the number of unique MessageGroupId values. This allows for an even distribution across FIFO queue partitions. For more information, see Using the Amazon SQS message group ID.

For more information, see Why doesn't my Amazon SQS FIFO queue return all messages or messages in other message groups? in the Amazon Knowledge Center Guide.