What is Azure Cosmos DB?

Azure Cosmos DB is Microsoft’s globally distributed, horizontally partitioned, multi-model database service, and is the result of a seven-year project to create a database designed for global reach and customer accountability.

Microsoft CEO Satya Nadella says it’s the fastest-scaling database he’s ever seen.

As a base service of every Azure datacenter and region, Cosmos DB allows developers to click on a map to add or delete geographic regions even while their Cosmos DB-based applications are running. That worldwide distribution allows for both massive scale and minimal latency for users anywhere. It also gives It developers a level of transparency over the choices they make with designing their apps that you can’t get with other databases.

Notable features of Cosmos DB

  • Cosmos DB can support multiple data models using one backend.  It is the only true data store that can ‘transform’ itself into different traditional database architectures.  This means that it can be used for document, key value, relational, and graph models. It replaces Microsoft’s previous NoSQL offering DocumentDB and is competitive against Amazon Web Services (AWS) DynamoDB and Google Spanner.
  • Cosmos DB includes support for multiple data models, including SQL, document, graph, key-value, table and column-family, and has APIs for SQL, MongoDB, Cassandra, Gremlin and Table.
  • Cosmos allows for different choices for consistency options that an engineer can configure based on the application and data requirements. The choices range from data that’s not committed until it is replicated everywhere (strong) or data that’s committed over time when the disparate data center performs the write (eventual).
  • Microsoft stands behind Cosmos DB in a big way by providing users with service-level agreements on uptime, performance, latency, and throughput.

What’s new with Cosmos DB

At Build 2018 in May, Microsoft announced new features for Azure Cosmos DB, including:

  • Multimaster write capability. The Multi-Master feature allows writes to be made, and synchronized across regions, with guaranteed consistency. Once this feature reaches general availability, Microsoft will likely use it as part of a campaign to displace a lot of Amazon DynamoDBand Google Cloud Spanner
  • A provisioning option that means developers can allocate provisioning throughput for a set of containers, meaning the containers can share the provisioned throughput. Until now, Cosmos DB let you configure throughput that you need and pay only for the throughput that you have reserved. This is organized via containers made up of collections, tables or graphs. The new option makes capacity planning simpler, as you can configure provisioned throughput at different granularities either programmatically or through the Azure portal.
  • The introduction of Bulk Executor library in .NET and Java that allows developers to perform bulk operations in Azure Cosmos DB through APIs for bulk import and update.
  • Enhanced security through the general availability of support for Microsoft’s Virtual Network (VNet) service.

The Bottom Line

A key point to remember about Cosmos DB, says Andrew Brust of ZDNet, is that it’s based on the same technology Microsoft has used for its own cloud services for years.

“The company’s skin is in the proverbial game, with very high stakes. If it’s worked for them, it’s going to work really well for their customers. What’s left is more fit and finish on pricing, marketing and rationalizing the service with other components in the Azure data and analytics stack.”

What’s Next?

Microsoft Inspire is going on right now, Menlo is there, and we look forward to sharing what we learn there. Stay tuned!

Would you like to learn more about Azure Cosmos DB? Let Menlo Technologies take care of you. Click here to talk to an Azure expert.