Amazon SQS message quotas - Amazon Simple Queue Service (original) (raw)
Message throughput
Standard queues support a very high, nearly unlimited number of API calls per second, per action (SendMessage, ReceiveMessage, or DeleteMessage). This high throughput makes them ideal for use cases that require processing large volumes of messages quickly, such as real-time data streaming or large-scale applications. While standard queues scale automatically with demand, it is essential to monitor usage patterns to ensure optimal performance, especially in regions with higher workloads.
- Each partition in a FIFO queue is limited to 300 transactions per second, per API action (
SendMessage
,ReceiveMessage
, andDeleteMessage
). This limit applies specifically to non-high throughput mode. By switching to high throughput mode, you can surpass this default limit. To enable high-throughput mode, see Enabling high throughput for FIFO queues in Amazon SQS. - If you use batching, non-high throughput FIFO queues support up to 3,000 messages per second, per API action (
SendMessage
,ReceiveMessage
, andDeleteMessage
). The 3,000 messages per second represent 300 API calls, each with a batch of 10 messages.
High throughput for FIFO queues
Amazon SQS FIFO limits are based on the number of API requests, not message limits. For high throughput mode, these API request limits are as follows:
Transaction throughput limits (Non-batching API calls)
These limits define how frequently each API operation (such as SendMessage, ReceiveMessage, or DeleteMessage) can be performed independently, ensuring efficient system performance within the allowed transactions per second (TPS).
The following limits are based on non-batched API calls:
- US East (N. Virginia), US West (Oregon), and Europe (Ireland): Up to 70,000 transactions per second (TPS).
- US East (Ohio) and Europe (Frankfurt): Up to 19,000 TPS.
- Asia Pacific (Mumbai), Asia Pacific (Singapore), Asia Pacific (Sydney), and Asia Pacific (Tokyo): Up to 9,000 TPS.
- Europe (London) and South America (São Paulo): Up to 4,500 TPS.
- All other AWS Regions: Default throughput of 2,400 TPS.
Maximizing throughput with batching
Processes multiple messages in a single API call, which significantly increasing efficiency. Instead of handling each message individually, batching allows you to send, receive, or delete up to 10 messages in a single API request. This reduces the total number of API calls, allowing you to process more messages per second while staying within the transaction limits (TPS) for the region, maximizing throughput and system performance. For more information, see Increasing throughput using horizontal scaling and action batching with Amazon SQS.
The following limits are based on batched API calls:
- US East (N. Virginia), US West (Oregon), and Europe (Ireland): Up to 700,000 messages per second (10x the non-batch limit of 70,000 TPS).
- US East (Ohio) and Europe (Frankfurt): Up to 190,000 messages per second.
- Asia Pacific (Mumbai), Asia Pacific (Singapore), Asia Pacific (Sydney), and Asia Pacific (Tokyo): Up to 90,000 messages per second.
- Europe (London) and South America (São Paulo): Up to 45,000 messages per second.
- All other AWS Regions: Up to 24,000 messages per second.
Optimizing throughput beyond batching
While batching can greatly increase throughput, it’s important to consider other strategies for optimizing FIFO performance:
- Distribute messages across multiple message group IDs – Since messages within a single group are processed sequentially, distributing your workload across multiple message groups allows for better parallelism and higher overall throughput. For more information, see Partitions and data distribution for high throughput for SQS FIFO queues.
- Efficient use of API calls – Minimize unnecessary API calls, such as frequent visibility changes or repeated message deletions, to optimize the use of your available TPS and improve efficiency.
- Use long poll receives – Utilize long polling by setting WaitTimeSeconds in your receive requests to reduce empty responses when no messages are available, lowering unnecessary API calls and making better use of your TPS quota.
- Requesting throughput increases – If your application requires throughput higher than the default limits, request an increase using the Service Quotas console. This can be necessary for high-demand workloads or in regions with lower default limits. To enable high-throughput mode, see Enabling high throughput for FIFO queues in Amazon SQS.