Skip to content

Why is my on-demand DynamoDB table throttling?

3 minute read
1

My on-demand Amazon DynamoDB table is throttling, and I don't know why.

Resolution

DynamoDB tables that use on-demand capacity mode automatically adapt to your application's traffic volume. However, the following scenarios might cause your on-demand DynamoDB tables to throttle.

The traffic is more than double the previous peak

DynamoDB on-demand tables might experience throttling when traffic exceeds double the previous peak throughput within a 30-minute window.

To resolve this issue, gradually scale your traffic over at least 30 minutes before you reach double your previous peak. To monitor your table's throughput, use the ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits metrics in Amazon CloudWatch. To monitor on-demand throttling, use ReadMaxOnDemandThroughputThrottleEvents and WriteMaxOnDemandThroughputThrottleEvents.

For new on-demand tables, you can immediately and simultaneously drive up to 4,000 write request units and 12,000 read request units. For planned or peak events, use warm throughput to scale your table's capacity to your expected usage.

If you switch an existing table to on-demand capacity mode, then the previous peak is one of the following values:

  • New tables start with 4,000 write capacity units (WCU) and 12,000 read capacity units (RCU).
  • If you provisioned your table higher than the starting value, then it retains the higher capacity.
  • Initial capacity might be higher in sustained usage patterns.

The traffic exceeds the maximum throughput for each partition

Each partition in the table can simultaneously serve up to 1,000 write request units and 3,000 read request units. If the traffic to a partition exceeds this quota, then the partition might throttle.

To resolve this issue, complete the following steps:

  1. Use CloudWatch Contributor Insights for DynamoDB to identify the most frequently accessed and throttled keys in your table.
  2. Use enhanced metrics to verify that partition throttle events are the cause.
  3. Use write sharding to evenly distribute requests across your partitions.
  4. Optimize your error retries and exponential backoff strategy.

The traffic exceeds your account's quota for each table

By default, on-demand tables have AWS account-level quotas of 40,000 WCU and 40,000 RCU for each table. If the traffic to a table exceeds the throughput quotas, then the table might throttle.

To resolve this issue, complete the following steps:

  1. In CloudWatch, compare ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits against your current quotas.
  2. Request an account-level quota increase for the table-level read and write capacity units.

The GSI of your table experiences throttling

If your DynamoDB table has a global secondary index (GSI) that's throttling, then the throttling might create back-pressure throttling on the base table. For more information, see Understanding GSI write throttling and back pressure in DynamoDB and Using GSIs in DynamoDB.

The traffic exceeds the maximum configured throughput

If you configured maximum throughput quotas for your on-demand table, then you get a "ThrottlingException" error when you exceed your throughput quotas.

Based on your use case, take one of the following actions:

To monitor the maximum throughput that you configured for a table or GSI, use the OnDemandMaxReadRequestUnits and OnDemandMaxWriteRequestUnits metrics in CloudWatch.

Related information

DynamoDB throttling resolution guide

How do I choose a good primary key for my DynamoDB table?

Why are my metrics on DynamoDB different from the CloudWatch metrics?

Quotas in DynamoDB

Introducing configurable maximum throughput for DynamoDB on-demand

AWS OFFICIALUpdated 6 months ago
3 Comments

Thank you for this helpful article. I'd like to suggest a small update regarding partition throughput limits: Read and write operations are now managed independently on DynamoDB partitions, rather than as a linear combination. Each partition can handle up to 3,000 RCUs and 1,000 WCUs independently, meaning a partition can simultaneously process both types of operations up to their respective limits without one affecting the other. This might help readers better understand current throttling behavior.

replied 9 months ago

replied 7 months ago

This article was reviewed and updated on 2026-03-09.

AWS
MODERATOR

replied 6 months ago