SDI.
All Databases
Key-ValueOps: low

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

Fully managed with zero server provisioning, patching, or capacity planning in on-demand modeSingle-digit millisecond read/write latency at any scale with automatic partitioningGlobal Tables provide multi-region active-active replication with last-writer-wins conflict resolutionDynamoDB Streams enable event-driven architectures with ordered, exactly-once change captureDAX (DynamoDB Accelerator) provides microsecond read latency via an in-memory cache layerFine-grained IAM-based access control down to individual items and attributes

Weaknesses

Single-item transactions limited to 400KB; complex queries require careful index design with GSIsHot partition throttling can occur if traffic concentrates on a small number of partition keysNo server-side joins or aggregations; all data modeling must be denormalized or use single-table designCost can escalate rapidly with high throughput; provisioned capacity requires accurate forecastingGSI (Global Secondary Index) updates are eventually consistent and have separate throughput limitsVendor lock-in to AWS; no true open-source equivalent with identical semantics

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

Command Palette

Search for a command to run...