DynamoDB
Definition
DynamoDB is an AWS NoSQL database service that automatically scales to handle large amounts of data while providing fast performance and low latency.
Use Cases
- Amazon: Shopping cart and session-like data for high-traffic e-commerce experiences — Uses DynamoDB as a low-latency key-value store pattern where items are retrieved by primary key, with throughput scaling to handle traffic spikes and multi-AZ durability managed by AWS. (Consistently low-latency reads/writes at very high request rates with reduced operational overhead compared to self-managed databases.)
- Netflix: Storing and serving high-volume metadata and operational data that needs fast, predictable access — Uses DynamoDB for key-value access patterns where predictable single-digit millisecond latency and managed scaling are important, integrating with AWS services for monitoring and automation. (Improved reliability and scalability for specific microservice data needs while minimizing database administration effort.)
- Lyft: Storing fast-changing application data that benefits from managed scaling and low-latency access — Uses DynamoDB for certain service data models that map well to partition/sort keys, leveraging on-demand or provisioned capacity and operational tooling around AWS. (Handles variable traffic patterns with predictable performance and reduced time spent on capacity planning and operations.)
Provider Equivalents
- AWS: Amazon DynamoDB
- Azure: Azure Cosmos DB
- GCP: Cloud Firestore
- OCI: Oracle NoSQL Database Cloud Service
Frequently Asked Questions
- What's the difference between DynamoDB and RDS (relational databases)?
- DynamoDB is a NoSQL database optimized for fast key-based lookups and massive scale with minimal management. RDS (like MySQL or PostgreSQL) is relational and best when you need SQL, complex joins, and strong relational modeling. Choose DynamoDB when your access patterns are well-defined (get by key, query by sort key) and you need very high throughput and low latency; choose RDS when you need flexible querying and relational constraints.
- When should I use DynamoDB?
- Use DynamoDB when you need a fully managed database that can scale to very high request rates with low latency, and your data access patterns are known in advance. Common use cases include user profiles, session/cart data, IoT device state, gaming leaderboards, event deduplication, and metadata lookups. It’s especially useful when you want to avoid managing servers, replication, and sharding.
- How much does DynamoDB cost?
- DynamoDB pricing depends mainly on capacity mode (on-demand vs provisioned), read/write throughput consumed, storage (GB-month), and optional features like DynamoDB Streams, global tables (multi-region replication), backups (PITR), and data transfer. On-demand is simpler for spiky or unpredictable traffic; provisioned can be cheaper for steady workloads if you right-size and use auto scaling.
Category: data
Difficulty: intermediate
Related Terms
See Also