Three Thousand Per Partition

A DynamoDB table uses product_id as its partition key. Items average 6 KB. During a flash sale, 4,000 strongly consistent GetItem calls per second all target one product id, and DynamoDB starts throttling even though table-level throughput is far from its limit.

Relevant limits: every partition serves at most 3,000 read units per second, and one read unit is one strongly consistent read of an item up to 4 KB.

What is the actual ceiling for that key, and what fixes it?

A

4,000 reads per second is within limits. The throttling comes from items exceeding 4 KB, so compressing them under 4 KB removes it.

B

1,500 reads per second. One partition key value lives on one partition, so extra capacity cannot help; cache the item, or shard it across N shadow keys.

C

3,000 reads per second, and switching to eventually consistent reads doubles it to 6,000, which clears the 4,000.

D

1,500 reads per second, fixed by raising the table's provisioned read capacity, which makes DynamoDB split the overloaded partition in two and doubles the ceiling.