At Build 2017 today in Seattle Microsoft took the wraps off Azure Cosmos DB, a “globally distributed multi-model database service”. Cosmos DB is designed to be as accessible as it is available, and is a significant upgrade to Document DB, a managed NoSQL database service optimised for JSON storage.
What is particularly striking about Cosmos DB is that it’s unashamedly designed to take full advantage of Microsoft’s hyperscale data center infrastructure – running across 27 regions. This is not a database for on prem deployment.
Like Google Cloud Platform’s recent Spanner announcement, which I covered here, it takes Brewer’s CAP Theorem – that a distributed data store can only offer guarantees in two dimensions across consistency, availability or partition tolerance – as a theoretical rather than practical limit on database design.
Cosmos DB instead offers these tradeoffs as declarative options for a developer. Replication policies are declarations rather than design decisions, with Microsoft offering service level guarantees for uptime, performance, latency and consistency etc.
While aimed at different application types – Spanner offers ACID-style consistency for relational style transactions apps – there are similarities in being web scale architectures with cross region policy control. Cosmos DB makes region policy really easy to set up.
In terms of developer accessibility Microsoft announced support for graph traversal, supporting Apache Gremlin.The Build graph demo was cool, but almost presented as an afterthought – Microsoft took a natural language query and created the Graph database query on the fly, using the Marvel superhero universe as a dataset.
Mongo API support is the big plus for Microsoft in developer accessibility terms – CosmosDB, like DocumentDB acts as managed Mongo database as a service, competing with MongoDB’s own Atlas service.
Cosmos takes the comedy about Mongo being “Web scale” and turns it on its head. It really is Web scale. Once the data is in Cosmos DB, Microsoft offers options such as Spark and Hadoop (HDInsights) for streaming and analytics. Hadoop ecosystem components belong in the cloud.
Microsoft already has customers running DocumentDB at massive scale – including JET.com, and refactored the design based on these experiences. Honeywell, Schneider Electric and Johnson Controls are all adopters, which is a solid industrial automation base right out of the gate.
Microsoft also announced managed database support for Postgres and MySQL today but there is no doubt the most interesting data store news was Cosmos DB, a differentiated offering designed explicitly for the Azure cloud.
Microsoft is a client, paid T&E to Build. Google and MongoDB are also clients.
Ryan CrawCour says:
May 11, 2017 at 12:45 am
CosmosDB is not a new offering per se. It’s not an addition to DocumentDB. It’s a rebranding of the old product now that they have added on other models like graph and key-value
This Week in Cloud May 12, 2017 - Apprenda says:
May 12, 2017 at 1:51 pm
[…] Azure Cosmos DB: It’s Web Scale! […]
Mark Callaghan says:
May 16, 2017 at 11:53 pm
MongoDB is web-scale was funny back in the day. But today’s MongoDB is very different. They have been paying off tech debt fast, see the 3.4 release and expect a lot more in the next few releases.
May 17, 2017 at 8:56 am
very fair mark. mongo has indeed come a long way. it’s now not just accessible, but far more capable in terms of the storage engine, with better management and availability characteristics. my point really wasn’t to be negative about MongoDB. but there are a lot of managed offerings out there now.
Ayesha Irshad says:
May 22, 2019 at 7:07 am
Fair analysis for 2017 but MongoDB have improved drastically over the period of last 2 years.