How to choose between provisioned throughput and serverless

APPLIES TO: NoSQL MongoDB Cassandra Gremlin Table

Azure Cosmos DB is available in two different capacity modes: provisioned throughput and serverless. You can perform the exact same database operations in both modes, but the way you get billed for these operations is radically different.

Detailed comparison

Criteria Provisioned throughput Serverless
Best suited for Workloads with sustained traffic requiring predictable performance Workloads with intermittent or unpredictable traffic and low average-to-peak traffic ratio
How it works For each of your containers, you configure some amount of provisioned throughput expressed in Request Units (RUs) per second. Every second, this quantity of Request Units is available for your database operations. Provisioned throughput can be updated manually or adjusted automatically with autoscale. You run your database operations against your containers without having to configure any previously provisioned capacity.
Geo-distribution Available (unlimited number of Azure regions) Unavailable (serverless accounts can only run in a single Azure region)
Maximum storage per container Unlimited 50 GB
Performance < 10-ms latency for point-reads and writes covered by SLA < 10-ms latency for point-reads and < 30 ms for writes covered by SLO
Billing model Billing is done on a per-hour basis for the RU/s provisioned, regardless of how many RUs were consumed. Billing is done on a per-hour basis for the number of RUs consumed by your database operations.

Estimating your expected consumption

In some situations, it may be unclear whether provisioned throughput or serverless should be chosen for a given workload. To help with this decision, you can estimate your overall expected consumption, or the total number of RUs you may consume over a month.

Next steps