grafclouds.com / documents / training / devops-challenges / aws-dynamodb-hot-partition

DynamoDB Is Throttling but Capacity Looks Idle. Crank It Up?

Advanced ~15 min read
AWSDatabases

Scenario

Your application is getting ProvisionedThroughputExceededException errors from a DynamoDB table, yet the CloudWatch capacity graphs look almost embarrassing: consumed read and write units sit well below what the table has provisioned. The table was sized generously months ago, and on paper there is plenty of headroom. Digging into the access pattern reveals the real story — the partition key has only a handful of distinct values, and one of them (a big tenant, a default category, a "hot" device type) receives the overwhelming majority of traffic.

In the incident channel, a teammate proposes the obvious lever: "Double the provisioned capacity — or just flip the table to on-demand so it scales itself." Throttling plus low utilization looks like an under-provisioning problem, so more capacity should fix it. Right?

The Quick Fix on the Table

Raise provisioned capacity, or switch the table to on-demand mode. Either is a console click or a one-line Terraform change, requires no application changes, and comes with the comforting feeling of having "done something" during an incident.

Interview · Round 1

The quick fix is on the table and the room is waiting for your call. Would you sign off on it? Take a position and justify it — out loud or on paper — before revealing the analysis.