Quick verdict
Choose DynamoDB if you build on AWS, your access patterns are key-based and known in advance, and you want transactions that can span items and tables (up to 100 actions) and global tables with an option for strong consistency across three Regions. Choose Azure Cosmos DB if you build on Azure, want five consistency levels, multi-region writes in any number of Azure regions, larger items (2 MB), a SQL-like query language over JSON, or compatibility APIs for MongoDB, Cassandra, Gremlin or Table. Neither runs on the other's cloud, so treat this as a choice about the platform as much as the database.
Amazon DynamoDB is AWS's serverless key-value and document database. You create tables, not servers: each item is addressed by a partition key and optional sort key, and is read with GetItem, Query and Scan or a subset of PartiQL. Tables use on-demand (pay per request) or provisioned capacity, global tables replicate across Regions, and since 5 August 2026 vector indexes and the SearchVectors API add similarity search on on-demand tables. See our Amazon DynamoDB profile.
Azure Cosmos DB is Microsoft's fully managed NoSQL and vector database. Each account uses one API: the native API for NoSQL (JSON documents queried with a SQL-like language) or compatibility APIs for MongoDB, Apache Cassandra, Apache Gremlin and Table. Items are partitioned by a partition key, every operation is costed in request units (RUs), and you can add Azure regions to an account at any time. See our Azure Cosmos DB guide for APIs, capacity modes and worked price examples.
Side by side
| Aspect | Amazon DynamoDB | Azure Cosmos DB |
|---|---|---|
| Cloud | AWS only (DynamoDB local for development) | Azure only (emulator for development) |
| APIs and query | DynamoDB API (GetItem, Query, Scan) and a PartiQL subset | API for NoSQL with a SQL-like query language; MongoDB, Cassandra, Gremlin and Table APIs (one per account) |
| Maximum item size | 400 KB | 2 MB (16 MB documents in the API for MongoDB when enabled) |
| Partition limits | Partitions managed automatically; no per-key storage cap to plan for outside LSI item collections (10 GB) | 20 GB per logical partition and 10,000 RU/s per partition; hierarchical partition keys to go further |
| Capacity modes | On-demand (per request) or provisioned (per WCU and RCU hour), switchable | Standard provisioned RU/s, autoscale RU/s, or serverless (per million RUs, single region) |
| Read consistency | Eventually consistent by default; strongly consistent reads on request (not on GSIs) | Five levels: strong, bounded staleness, session, consistent prefix, eventual; default per account, relaxable per request |
| Transactions | ACID across items and tables in one Region, up to 100 actions | ACID with snapshot isolation within one logical partition key: transactional batch (100 operations, 2 MB, 5 s) or stored procedures |
| Multi-region writes | Global tables: MREC (last writer wins, any number of Regions) or MRSC (strong, exactly 3 Regions) | Multi-region writes in any number of regions, with last-writer-wins or custom conflict resolution; strong consistency not available with multiple write regions |
| Vector search | Vector indexes with SearchVectors (GA 5 August 2026); on-demand tables only | Integrated vector search in the API for NoSQL: flat, quantizedFlat and DiskANN indexes, up to 4,096 dimensions |
| Free allowance | 25 GB storage, 25 WCU and 25 RCU (provisioned) per Region each month, no time limit | Lifetime free tier: 1,000 RU/s and 25 GB for one account per subscription (not serverless) |
| Availability SLA (vendor stated) | 99.99% single-Region; 99.999% global tables | Up to 99.999% for multi-region accounts; tiers vary by configuration |
Key differences
Data model, APIs and querying
DynamoDB has one data model and API. You design keys and secondary indexes around known questions, often with several entity types sharing one table, and anything that does not match a key or index becomes a Scan. PartiQL gives SQL-like syntax for single-table statements but no joins.
Cosmos DB asks you to choose an API per account. The native API for NoSQL indexes every property by default and supports a SQL-like language with filters, projections, aggregates and JOIN within an item (up to 10 per query by default). The MongoDB, Cassandra, Gremlin and Table APIs let existing drivers connect, with documented feature gaps; see MongoDB Atlas vs Azure Cosmos DB for the MongoDB case.
-- DynamoDB PartiQL: one customer's orders by key
SELECT * FROM "AppTable"
WHERE PK = 'CUSTOMER#123' AND begins_with(SK, 'ORDER#');
-- Cosmos DB API for NoSQL: the same within one partition
SELECT c.id, c.total, c.orderDate FROM c
WHERE c.customerId = "123" AND c.type = "order"
ORDER BY c.orderDate DESC Capacity and pricing units
DynamoDB counts work in request units sized by data: a write request unit covers up to 1 KB, a strongly consistent read unit up to 4 KB, an eventually consistent read costs half and a transactional read or write costs double. On-demand bills per million units; provisioned bills per capacity unit per hour, with auto scaling and reserved capacity.
Cosmos DB normalises every operation into RUs: Microsoft's reference is that a point read of a 1 KB item by ID and partition key costs 1 RU, while writes, queries, larger items, more indexed properties and stronger consistency cost more (strong and bounded staleness reads cost about twice as much). You provision RU/s in steps of 100 (manual, minimum 400 RU/s per container), set an autoscale maximum (scaling between 10% and 100% and billed at the hourly peak), or use serverless, which is limited to one region. In both services, item size and access pattern drive cost more than data volume, so estimate with your own operations.
Consistency and transactions
DynamoDB offers two read modes: eventually consistent (default) and strongly consistent, which is not available on global secondary indexes. TransactWriteItems and TransactGetItems group up to 100 actions on distinct items, across tables, within one account and Region.
Cosmos DB offers five consistency levels, with session the most widely used according to Microsoft. Its ACID transactions use snapshot isolation but are scoped to one logical partition key in a container: a transactional batch holds up to 100 point operations, up to 2 MB, and must finish within 5 seconds; stored procedures written in JavaScript give the same scope. If you need atomic updates across unrelated entities, DynamoDB's cross-table transactions are the more flexible model; in Cosmos DB you design the partition key so that related items share it.
Multi-region replication
DynamoDB global tables replicate a table across Regions with every replica accepting writes. The default, multi-Region eventual consistency (MREC), resolves conflicts with last writer wins. Multi-Region strong consistency (MRSC) replicates synchronously across exactly three Regions (three replicas, or two plus a witness), in a listed set of Regions, and does not support transactions, TTL or local secondary indexes; the mode is fixed at creation.
Cosmos DB lets you add or remove any Azure region on an account and enable multiple write regions. Conflicts are resolved by last writer wins on the system timestamp (or, in the API for NoSQL, a custom numeric property) or by a custom merge stored procedure, which can be set only when the container is created. Microsoft states that accounts with multiple write regions cannot use strong consistency; strong consistency is available with a single write region, where a write commits only after every region acknowledges it. Data and throughput are billed in every region you add.
Vector search for AI applications
DynamoDB added vector indexes on 5 August 2026. You define them with CreateTable or UpdateTable and query with SearchVectors, which performs approximate nearest neighbour search with cosine, dot product or Euclidean distance. Vector indexes require on-demand capacity (5 per table by default, adjustable to 20), are indexed asynchronously after each write, work with global tables and are not supported by DAX.
Cosmos DB for NoSQL stores vectors inside documents and offers flat (exact, up to 505 dimensions), quantizedFlat and DiskANN indexes (up to 4,096 dimensions), queried with the VectorDistance function alongside normal WHERE filters. Microsoft notes that vector search is not supported on accounts with shared database throughput and cannot be disabled on a container once enabled.
Pricing and licensing
Amazon DynamoDB (US East, N. Virginia, Standard table class, USD, from the AWS DynamoDB pricing pages on 7 November 2026): on-demand 0.625 per million write request units and 0.125 per million read request units; storage 0.25 per GB-month; provisioned 0.00065 per WCU-hour and 0.00013 per RCU-hour; point-in-time recovery 0.20 per GB-month; global table replicated writes 0.625 per million. The Standard-IA class lowers storage to 0.10 per GB-month at higher request prices. Vector search is billed separately by data written to vector indexes, data searched and vector index storage; check the on-demand pricing page for the rates. The free tier gives 25 GB and 25 provisioned WCUs and RCUs per Region each month.
Azure Cosmos DB (East US, USD, from Microsoft's Azure Retail Prices API on 7 November 2026, request unit accounts): standard provisioned throughput 0.008 per 100 RU/s per hour (about 5.84 a month); multi-region write throughput 0.016 per 100 RU/s per hour; autoscale 0.012 per 100 RU/s per hour, billed at the highest RU/s reached each hour; serverless 0.25 per million RUs; transactional storage 0.25 per GB-month in each region. The lifetime free tier covers 1,000 RU/s and 25 GB for one account per subscription.
Putting them side by side. The per-unit prices are not comparable directly, because a DynamoDB request unit and a Cosmos DB RU measure different amounts of work. As arithmetic only: 400 RU/s provisioned in one Cosmos DB region with 10 GB stored is 4 x 5.84 + 10 x 0.25 = USD 25.86 a month; on DynamoDB on-demand, 10 million 1 KB writes and 50 million 4 KB strongly consistent reads with 10 GB stored is 10 x 0.625 + 50 x 0.125 + 10 x 0.25 = USD 15.00 a month before the free tier. These workloads are not equivalent; use the AWS Pricing Calculator and the Azure pricing calculator with your own traffic.
Pricing checked on the vendors' official pages on 7 November 2026. Prices change; confirm before buying.
Where each one leads
Amazon DynamoDB strengths
- Serverless on-demand mode with no throughput to configure, in multi-Region tables too
- Transactions across items and tables, up to 100 actions
- Global tables with a strong consistency option (MRSC) across three Regions
- Deep integration with Lambda, IAM, Streams and other AWS services
- Permanent free tier of 25 GB and 25 WCUs and RCUs per Region
Azure Cosmos DB strengths
- Five consistency levels, settable per account and relaxable per request
- Multi-region writes in any number of Azure regions, with custom conflict resolution in the API for NoSQL
- Larger items (2 MB) and automatic indexing of every property by default
- SQL-like query language plus MongoDB, Cassandra, Gremlin and Table APIs
- Vector search with exact and DiskANN indexes inside the same documents
Limitations
Amazon DynamoDB limitations
- AWS only
- 400 KB item size limit
- Queries must follow keys and indexes; no joins, and other access becomes a scan
- MRSC global tables need exactly three listed Regions and drop transactions, TTL and LSIs
- Vector indexes require on-demand capacity
Azure Cosmos DB limitations
- Azure only
- Transactions limited to one logical partition key, with a 5-second, 100-operation batch
- Logical partitions capped at 20 GB and 10,000 RU/s unless you use hierarchical keys
- Strong consistency is not available with multiple write regions
- Serverless accounts are single-region and not covered by the free tier
When to choose each
Choose Amazon DynamoDB if
- Your applications run on AWS
- You need atomic updates across several tables or unrelated items
- You want strong consistency across Regions with every replica writable
- You prefer one data model and API with pay-per-request billing
Choose Azure Cosmos DB if
- Your applications run on Azure
- You want tunable consistency such as session or bounded staleness
- You need active-active writes in more than three regions
- Your items exceed 400 KB, or you want MongoDB, Cassandra or Gremlin wire compatibility
When neither is right
- You need to run the same database on more than one cloud or on premises: see DynamoDB vs MongoDB and Cassandra vs ScyllaDB.
- You want MongoDB itself as a managed service: see MongoDB Atlas vs Azure Cosmos DB.
- Your data is relational and needs joins and multi-row transactions: see DynamoDB vs PostgreSQL or distributed SQL in CockroachDB vs YugabyteDB.
- You need analytics over operational data: both vendors point analytical workloads to other services.
Final recommendation
Start from your cloud: DynamoDB for AWS, Azure Cosmos DB for Azure, because neither runs elsewhere and both are most useful next to their platform's other services. Within that, check the details that are hard to change later: DynamoDB's 400 KB items and key-driven queries against Cosmos DB's 20 GB logical partitions and single-partition transactions, and the multi-region model you need (DynamoDB MRSC across three Regions, or Cosmos DB multi-region writes without strong consistency). Model costs with your real operation mix, since the two request units measure different things.
Frequently asked questions
Is Cosmos DB the Azure equivalent of DynamoDB?
Broadly, yes: both are first-party, managed, partitioned NoSQL databases billed by request units or provisioned throughput. Cosmos DB adds several APIs and five consistency levels, allows 2 MB items and scopes transactions to one logical partition; DynamoDB has one API, 400 KB items and transactions across tables.
Can I use strong consistency across regions?
DynamoDB offers multi-Region strong consistency (MRSC) global tables across exactly three Regions, with every replica writable but without transactions, TTL or LSIs. Cosmos DB offers strong consistency across regions only with a single write region; Microsoft states that accounts with multiple write regions cannot use strong consistency.
Do both have vector search?
Yes. DynamoDB made vector indexes and the SearchVectors API generally available on 5 August 2026, for on-demand tables. Cosmos DB for NoSQL offers integrated vector search with flat, quantizedFlat and DiskANN indexes up to 4,096 dimensions.
Which has a better free tier?
They differ. DynamoDB gives 25 GB and 25 provisioned WCUs and RCUs per Region each month, permanently. Cosmos DB gives one account per subscription 1,000 RU/s and 25 GB for the life of the account, if you opt in at creation; it does not apply to serverless accounts.
How large can items be?
DynamoDB items are limited to 400 KB including attribute names. Cosmos DB items can be up to 2 MB, and up to 16 MB in the API for MongoDB when the feature is enabled.
Sources
- Amazon DynamoDB on-demand pricing
- DynamoDB Developer Guide: How global tables work
- DynamoDB Developer Guide: Using vector indexes
- AWS What's New: DynamoDB vector search (August 2026)
- Microsoft Learn: Azure Cosmos DB service quotas and limits
- Microsoft Learn: Transactional batch operations
- Microsoft Learn: Consistency levels
- Microsoft Learn: Conflict resolution policies
- Microsoft Learn: Integrated vector store in Azure Cosmos DB
- Azure Cosmos DB pricing: standard provisioned throughput
Checked November 2026.
How we research comparisons: our editorial method.