Microsoft Azure Cosmos DB

Update solution on June 23, 2019

Microsoft Azure Cosmos DB

Azure Cosmos DB is a distributed multi-model database that runs in the Microsoft Azure cloud and is provided as a service. It supports key-value, column store, document and graph formats with appropriate APIs. In the case, of a graph instantiation this means Gremlin, part of the Apache Tinkerpop stack.

As stated, Cosmos DB is a multi-model database offering. In theory this should mean that it will not perform as well as a native graph database though elastic scaling may be able to compensate for this, albeit at a cost. With specific reference to graph technology, Cosmos DB is a property graph database, with automatic indexing, support for partitioning, and a choice of consistency models that includes immediate consistency, so the products should be suitable transaction processing. That said, most Cosmos DB customers use an “intermediate” consistency model to support scenarios such as publish/subscribe or when preserving the sequence of social media conversations.

Although Cosmos DB uses Gremlin as a graph traversal language, the support for that language is not complete at this time. In particular, the MATCH statement (which represents the declarative element of Gremlin) is not supported.

The advantage of the multi-model approach is that you get polyglot persistence in one place. And this makes creating applications that need multiple approaches – say, combining graphs with documents – much easier, because you are working with a single database. However, what you would also like to do is to be able to query any storage format using a single language. Some of the graph database providers do this: allow you to query across storage formats from a single API. Unfortunately, Cosmos DB does not.

There are relatively few managed graph databases available as a service and, even where these are available, they are either not very mature, or do not have the global distribution (with geo-fencing) that Microsoft can offer. In addition, Microsoft has a long history of working with large enterprises, which many of its rivals in the graph space do not. On the other hand, treated purely as graph database, we would not describe Cosmos DB as anything more than adequate. It certainly lacks features that are available elsewhere. That said, there are some graph applications – typically where the numbers of edges and vertices are limited, and analytics requirements are not too complex – for which Cosmos DB will be suitable.

The Bottom Line

If your priorities are graph as a service along with a globally distributed environment, then Cosmos DB is worth consideration. It has all the advantages that you would associate with a managed service in general, and especially within the graph space where managed services are rare. However, if you want a fully-featured deployment specifically to support graph operations and/or analytics, then, in our opinion, you will need to be clear that your use case is suited to this environment.

Related Company

Connect with Us

Ready to Get Started

Learn how Bloor Research can support your organization’s journey toward a smarter, more secure future."

Connect with us Join Our Community