DynamoDB is a managed NoSQL database service provided by Amazon Web Services. As it is managed by Amazon, users do not have to worry about operations such as hardware provisioning, configuration, and scaling. The offering primarily targets key-value and document storage.


Amazon runs an e-commerce platform for millions of concurrent users, so the underlying services powering the platform must be highly reliable and scalable. Failures in infrastructure would have significant financial consequences and would degrade consumer trust in Amazon's platform. Thus, the motivating purpose behind DynamoDB was a data-store used by these services that could keep up in both availability and scalability such that infrastructure failures would not affect user experience. The original concept and implementation of DynamoDB was first introduced in 2007 with a paper titled: "Dynamo: Amazon’s Highly Available Key-value Store" The managed DynamoDB service was launched by AWS in January of 2012.


Materialized Views

DynamoDB Streams can create materialized views of data in DynamoDB tables.

Concurrency Control

Optimistic Concurrency Control (OCC)

Users have the ability to enable Optimistic Locking for DynamoDB using the AWS Java SDK. For example, they can specify a property with the annotation:`@DynamoDBVersionAttribute` which is then designated to store the version number for optimistic locking. Lastly, DynamoDB employs a "last writer wins" policy for conflict resolution.


Not Supported

Although there are no implementation details on DynamoDB's internal logging schema, users can log DynamoDB API operations via AWS CloudTrail.


Not Supported

DynamoDB does not support joins natively as it is a key-value store and not a relational database. However, Amazon's EMR service supports joining DynamoDB tables.

Isolation Levels

Read Uncommitted Read Committed Repeatable Read

DynamoDB has three configurable isolation levels: Read Uncommitted, Read Committed, and Repeatable Reads.

Stored Procedures

Not Supported

Although DynamoDB doesn't natively support stored procedures, users can use AWS Lambdas for a similar effect.

Storage Architecture


DynamoDB supports a pluggable local persistence engine that can range from in-memory buffers with persistent backing to purely disk-oriented ones. This allows it to be flexible with an application's access patterns.

Data Model

Key/Value Document / XML

DynamoDB is schemaless. Each table requires a primary key to identify its corresponding data item. However, there are no such constraints on non-key attributes. DynamoDB can hold both structured or semi-structured data, such as JSON or XML.

System Architecture


Nodes are partitioned via consistent hashing, and utilize gossip-based membership protocol.

Query Compilation

Not Supported


Bit Packing / Mostly Encoding

DynamoDB does not natively support compression. However, users can compress large attributes into binary data using compression algorithms like LZO or GZIP. These compression algorithms are available in the AWS SDK.

DynamoDB Logo


Tech Docs




Country of Origin


Start Year


Project Type


Written in


Supported languages

C++, Go, JavaScript, PHP, Python, Ruby, Swift

Operating Systems