Amazon DynamoDB
Serverless NoSQL key-value database with single-digit millisecond reads at any scale.
Verified against AWS documentation · 2026-09-09
Key facts
- 01Key-value and document store — you fetch items by key, you don't join tables; no fixed schema beyond the primary key
- 02Serverless and multi-AZ by default — nothing to size, patch, or fail over; data is replicated across AZs automatically
- 03Two capacity modes: on-demand (pay per request, spiky or unknown traffic) vs provisioned (set RCU/WCU, steady traffic)
- 04Limits: 400 KB max item size, PITR restore up to 35 days back, DAX adds a microsecond-latency in-memory cache
Exam triggers
Phrases and scenarios that point here.
- "NoSQL", "key-value", "single-digit millisecond", "serverless database" → DynamoDB, every time
- Unpredictable spikes with no capacity planning → DynamoDB on-demand mode
- Reads are already fast but need to be faster (microseconds) → put DAX in front, don't re-architect
- Active-active database in multiple Regions → Global Tables
Not this service
- Joins, complex SQL, or an existing relational schema → RDS or Aurora
- Files, images, anything over 400 KB → S3 (store the object there, keep the pointer in DynamoDB)
Use cases
- 01Session and shopping-cart state — one item per user, read on every page load, cleaned up automatically by TTL instead of a cron job
- 02Leaderboards and score tables, where traffic sits at zero and then jumps to a million writes the second a match ends
- 03Device or IoT state tracking — last known reading per device ID, written constantly, always read by key
- 04The default database behind API Gateway + Lambda, because Lambda has thousands of short-lived invocations and nothing to connection-pool against
- 05Order tracking for delivery or ride-hailing apps — order ID is the key, status updates overwrite in place, and Streams pushes each change out to the customer's app
How it's charged
- 01Two dials only — throughput (reads and writes) and storage per GB-month; there is no instance size to pay for
- 02On-demand bills per request unit actually consumed; provisioned bills per RCU/WCU per hour whether traffic shows up or not
- 03Reads are metered in 4 KB blocks and writes in 1 KB blocks, rounded up — a 1.1 KB item costs two write units, not one
- 04Every global secondary index is effectively a second table: its own storage bill plus an extra write charge on every item you put
- 05Optional features are billed separately — DAX nodes, Global Tables replicated writes, PITR and backups per GB, and Streams reads