Microsoft Announces Several Updates to Azure Cosmos DB Features

| by Eldert Grootenboer Follow 3 Followers on Oct 09, 2018. Estimated reading time: 3 minutes |

Microsoft has announced multiple updates to Azure Cosmos DB, their globally distributed, massively scalable, multi-model database service. The announcements include features around support for globally scaled multi-master, the addition of a Cassandra API, and price-lowering options with reserved capacity.

Cosmos DB offers a NoSQL database service, much like AWS DynamoDB and Google Cloud Datastore. Moreover, Cosmos DB is a foundational service of Azure, meaning it is available in all Azure regions, including specialized clouds like government, sovereign, and DoD. According to Dharma Shukla, founder of Azure Cosmos DB and Technical Fellow at Microsoft, Cosmos DB was created as a cloud-native database service and incorporates three fundamental characteristics that come with it.

Since its conception in 2010, as a cloud-born database, we have carefully designed and engineered Azure Cosmos DB to exploit the three fundamental properties of the cloud:

  • Global distribution by virtue of transparent multi-master replication.
  • Elastic scalability of throughput and storage worldwide by virtue of horizontal partitioning.
  • Fine grained multi-tenancy by virtue of highly resource-governed system stack all the way from the database engine to the replication protocol.

The new features, announced at Microsoft Ignite, further enhance the capabilities of Cosmos DB. For instance, support for multi-master at a global scale is now generally available and allows every region where the service runs to become a master for writing data. Cosmos DB will then handle replication of the data while handling any conflicts according to the resolution scheme the owner decided on. Three resolution modes are available for when conflicts occur on inserts, updates or deletes, each with its traits.

  • Last-Writer-Wins, the default mode, which uses a property with a numeric value from the document. The document with the highest value gets persisted, except in case of deletes, as then the delete always wins.
  • Custom - User-Defined Procedure, where a user creates a User Defined Procedure (UDP according to a specific signature). Hence, this allows the implementation of custom logic for handling conflicts.
  • Custom - Asynchronous, where the service writes all conflicts to a read-only feed. Subsequently, the application can then implement logic to handle these conflicts, using any external data available.

As the announcement of multi-master data allows to write data globally, it is also essential to decide on consistency. Therefore, Cosmos DB provides five consistency levels, ranging from strong consistency where reading data always return the most recent version of a document, all the way to eventual, giving very fast reads and writes, but which may lead to out of order data.


Another announced feature is the general availability of Cassandra as a supported API. Cosmos DB provides several models to communicate with the underlying database service, including SQL, Gremlin, and MongoDB, and so now Cassandra as well. As Anne Pilon, freelance writer, mentions, this allows to switch existing Cassandra applications to use Azure Cosmos DB with minimal to no changes.

This lets you continue using your existing applications and open source software tools without the need for changing code. It also lets you fully manage Cassandra apps without the need for a vendor lock-in.


Finally, the reserved capacity model allows to bring down the costs, particularly in cases where the required computing power, also known as Request Units, is known beforehand. By pre-paying for these resources for one or three years, costs can go down significantly, according to Rimma Nehme, product manager and architect on Azure Cosmos DB.

Reserved capacity enables you to reserve provisioned throughput in Cosmos DB on a one-or three-year term and provide up to 65% cost savings versus pay-as-you-go prices.

Anyone can get started with Cosmos DB through the Try Cosmos DB for free program. With this program, Microsoft offers a free 30-day trial, allowing to create a globally distributed container over three regions while providing all the features of the product.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Please god add "GROUP BY" capability to this database by Jonathan Freeman

Cosmos DB is a great platform with a glaring and obvious weakness... no group by support. How many "male" patients in your patient's collection vs "female"? Good luck - write yourself a SPROC that loops over them and returns the result of two queries. Worse yet - do the same thing for hair color... now you have to iterate results until you run into something that is new, then do the query again... very sketchy. Just having support for real aggregations (beyond "count") would make this a powerhouse database.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you