According to AWS, DynamoDB makes it simple and cost-effective to store and retrieve any amount of data, as well as serve any level of request traffic. All data items are stored on solid-state drives, which provide high I/O performance and can more efficiently handle high-scale requests. An AWS user interacts with the service by using the AWS Management Console or a DynamoDB API.
DynamoDB uses a NoSQL database model, which is nonrelational, allowing documents, graphs and columnar among its data models. A user stores data in DynamoDB tables, then interacts with it via GET and PUT queries, which are read and write operations, respectively. DynamoDB supports basic CRUD operations and conditional operations. Each DynamoDB query is executed by a primary key identified by the user, which uniquely identifies each item.
Scalability, availability and durability
DynamoDB enforces replication across three availability zones for high availability, durability and read consistency. A user can also opt for cross-region replication, which creates a backup copy of a DynamoDB table in one or more global geographic locations.
The DynamoDB scan API provides two consistency options when reading DynamoDB data: eventually consistent reads and strongly consistent reads. The former, which is the AWS default setting, maximizes throughput at the potential expense of not having a read reflect the latest write or update. The latter reflects all writes and updates.
There are no DynamoDB limits on data storage per user, nor a maximum throughput per table.
Amazon DynamoDB offers Fine-Grained Access Control (FGAC) for an administrator to protect data in a table. The admin or table owner can specify who can access which items or attributes in a table and what actions that person can perform. FGAC is based on the AWS identity and access management service, which manages credentials and permissions. As with other AWS products, the cloud provider recommends a policy of least privilege when granting access to items and attributes.
An admin can view usage metrics for DynamoDB with Amazon CloudWatch.
Additional DynamoDB features
The DynamoDB Triggers feature integrates with AWS Lambda to allow a developer to code actions based on updates to items in a DynamoDB table, such as sending a notification or connecting a table to another data source. The developer associates a Lambda function, which stores the logic code, with the stream on a DynamoDB table. AWS Lambda then reads updates to a table from a stream and executes the function.
The DynamoDB Streams feature provides a 24-hour chronological sequence of updates to items in a table. An admin can access the stream via an API call to take action based on updates, such as synchronizing information with another data store. An admin enables DynamoDB Streams on a per-table basis.