Amazon DynamoDB
Amazon DynamoDB is a fully managed, serverless NoSQL database service that provides single-digit millisecond performance at any scale with built-in security, backup, and multi-region replication. It uses a combination of consistent hashing, B-trees, and Paxos-based replication to deliver predictable performance regardless of table size. DynamoDB's on-demand and provisioned capacity modes, combined with DynamoDB Streams and global tables, make it a foundational building block for serverless and event-driven AWS architectures.
Strengths
Weaknesses
Ideal Workloads
- -Serverless applications using Lambda with predictable key-value or key-document access patterns
- -Session stores, shopping carts, and user preference storage requiring low-latency reads
- -Gaming leaderboards and player state management with high write throughput
- -Event-driven microservices using DynamoDB Streams as a change data capture mechanism
- -Multi-region applications requiring active-active writes with Global Tables
Scaling Model
Automatically scales by splitting partitions as data and throughput grow. On-demand mode scales instantly to accommodate traffic spikes without capacity planning. Provisioned mode uses auto-scaling policies to adjust read/write capacity units. Each partition handles up to 3,000 RCUs and 1,000 WCUs. Adaptive capacity automatically redistributes throughput across partitions to handle uneven access patterns.
Consistency Model
Supports both eventually consistent reads (default, lower cost) and strongly consistent reads (guaranteed to return the latest write). Strongly consistent reads must hit the partition leader and count as double the capacity units. TransactWriteItems and TransactGetItems provide ACID transactions across up to 100 items/25 tables. Global Tables use eventual consistency with last-writer-wins conflict resolution across regions (typically sub-second replication).
When to Use
- You are building on AWS and want a zero-ops database that scales automatically
- Your access patterns are well-defined and fit a key-value or single-table design model
- You need guaranteed single-digit millisecond latency regardless of data size
- You want built-in event streaming (DynamoDB Streams) for CDC and event-driven architectures
- You need multi-region active-active writes without managing replication infrastructure
When Not to Use
- You need ad-hoc queries, complex joins, or flexible access patterns that change frequently
- Your workload requires strong relational modeling with referential integrity
- You want to avoid vendor lock-in to a specific cloud provider
- You need full-text search, aggregations, or analytical queries over your data
- Cost optimization is critical and your workload has unpredictable, spiky throughput patterns
Source: editorial — Based on AWS DynamoDB documentation and the original Dynamo paper design principles