Internals

Your table throttles while CloudWatch shows average utilization under 50%, and adaptive capacity sounds like a magic fix until one partition key still absorbs a disproportionate share of traffic. Without a mental model of physical partitions, those behaviors look random.

This section is the deep end: how partition keys hash to storage splits, how GSIs are separate partitioned structures, how the request router picks an endpoint, and where today's DynamoDB still rhymes with the original Dynamo paper. Read it after modeling and indexing click — it explains the rules the earlier sections handed you.

What you can do after

  • Predict hot-key symptoms from hash distribution and item collection size.
  • Explain why a GSI lags the base table and why you cannot strong-read your own GSI write.
  • Describe adaptive capacity as redistribution, not unlimited burst on one key.
  • Connect partition splits and storage layout to why Query stays local to one hash key.

Reading order

  1. How partition keys work — hash key to partition assignment; the unit of throughput isolation.
  2. Adaptive capacity — borrowing capacity across partitions; limits under sustained skew.
  3. GSI internals — separate partitions, asynchronous propagation, storage overhead per index item.
  4. Physical partitions — splits when collections grow; 10 GB LSI collection caps in context.
  5. Storage internals — b-tree-ish local ordering inside a partition; what "sorted by sort key" means on disk.
  6. Request routing — endpoints, DNS, and why clients should retry throttles with backoff.
  7. From Dynamo paper to DynamoDB — historical lineage; which promises survived to the managed service.
0 of 8 readQuiz
How DynamoDB Partition Keys Work
How DynamoDB partition keys work — the hash that maps a key to a physical partition, why your key choice decides throughput, and how to dodge hot partitions.
Intermediate8 min read
DynamoDB Adaptive Capacity: What It Does and What It Cannot
DynamoDB adaptive capacity and burst capacity — how they absorb spikes and boost a hot partition automatically, and the partition ceiling neither can beat.
Advanced4 min read
How a DynamoDB GSI Is Stored Internally
How a DynamoDB GSI is stored — its own partition space, asynchronous replication from the base table, projected attributes only, and isolated capacity.
Advanced8 min read
DynamoDB physical partitions
How DynamoDB physical partitions work — the 10 GB, 3000 RCU and 1000 WCU ceilings, how partitions split, and why a hot key throttles with capacity to spare.
Advanced7 min read
How DynamoDB storage internals work
How DynamoDB storage internals work — partition hashing, the per-partition B-tree for sort-key ranges, and quorum replication across three AZs explained.
Advanced7 min read
How DynamoDB Request Routing Works
How DynamoDB request routing works — the request router hashes your partition key to find the right storage node, and why that fixes per-key latency.
Advanced7 min read
From the Dynamo Paper to DynamoDB
From the 2007 Amazon Dynamo paper to DynamoDB — what the original consistent-hashing, quorum design introduced, and what AWS kept versus quietly replaced.
Advanced7 min read
Knowledge checkTake the quiz
Check what you’ve learned in this section.

A partition key value maps to one hash slot at a time; all items sharing that hash key live in one item collection until a split occurs. Write 10,000 events per second to PK = TENANT#acme and you concentrate WRUs on a handful of physical partitions even if the table has thousands. Adaptive capacity can shift surplus from quiet partitions, but sustained skew on one key still wins.

GSI propagation is asynchronous — typically within a fraction of a second under normal conditions, per AWS — with no ConsistentRead escape hatch on the index.

Practice in the workbench

Download DynoTable and open Settings on a table you know is skewed. Compare key structure with item counts per partition using a Query on a heavy tenant partition vs a quiet one.

In the SQL Workbench, GROUP BY the partition key (or a prefix extracted in SQL) over a bounded Scan or Query result to see which keys carry the most items on screen. That aggregation runs client-side on fetched rows — it does not scan the table for free.

The item size calculator helps explain why large item collections approach split thresholds. DynoTable does not expose CloudWatch metrics or partition heat maps; use AWS observability for fleet-wide heat and the curriculum for the model behind what you see.

Read internals after Indexes so GSI write amplification and eventual consistency are already familiar.