Announcing the Azure DocumentDB

Yesterday Microsoft announced a new document database service for Azure. This is a service designed to compete against NoSQL databases like MongoDB, CouchDB, ElasticSearch, RavenDB, Cassandra and Amazon's DynamoDB.

As a practitioner of high performance web applications I have become a huge fan of document databases because they offer super fast access to data. They are also built using JSON or JavaScript Object Notation objects. This means the data works naturally with JavaScript in the browser. Each NoSQL offering has their strengths and weaknesses, so you need to choose wisely for your particular application.

Microsoft's Azure DocumentDB comes with several SDKs that make programming simpler. SDKs are available for .NET, Node.js, JavaScript or Python client SDKs. You can always interact with DocumentDB directly through the RESTful API. You can utilize LINQ syntax and perform some SQL like queries through server-side JavaScript stored procedures.

The DocumentDB service is optimized for writes according to my initial inquiries. This obviously benefits heavy write transaction applications, but I think the read performance will be acceptable for most scenarios.

Having the DocumentDB service offered as an integrated piece of the Azure platform makes it much easier for web applications using Azure Web Sites, services and other Azure hosted services to integrate a NoSQL data store. This appeals very much to my sense of modern application architecture.

Microsoft has been using DocumentDB internally over the past year. This should give you some initial confidence to try it out. Here is a quote from Guthrie's Blog Post:

Over the last year, we have used DocumentDB internally within Microsoft for several high-profile services. We now have DocumentDB databases that are each 100s of TBs in size, each processing millions of complex DocumentDB queries per day, with predictable performance of low single digit ms latency. DocumentDB provides a great way to scale applications and solutions like this to an incredible size.

Initial pricing is very easy to understand and favorable to us at $22.50/month for 10GB of storage and 2000 request units per second. I was a bit hazy on what defines a request unit. It did not sound like this was a PUT, POST, GET or DELETE, but more to do with actual fields retrieved or stored.

There were several other new services also announced:

  • Search: Preview of a New Search-as-a-Service offering for Azure
  • Virtual Machines: Portal support for SQL Server AlwaysOn + community-driven VMs
  • Web Sites: Support for Web Jobs and Web Site processes in the Preview Portal
  • Azure Insights: General Availability of Microsoft Azure Monitoring Services Management Library
  • API Management: Support for API Management REST APIs

I am pretty excited about the new DocumentDB service. As I get time to try it out I will share my experiences.

Share This Article With Your Friends!