Microsoft announced its entry into the NoSQL database market in August with the public-preview launch of Azure DocumentDB. Why choose this new cloud-based service when several third-party alternatives are already available on Azure? We put that question to Xomni, one of the earliest users of DocumentDB.
There are several reasons Xomni is giving DocumentDB a try, but most of them get back to the fact that the service is offered by Microsoft. No doubt Microsoft is counting on the appeal of getting all cloud services from a single, known-and-trusted vendor. Nonetheless, Xomni isn't a pushover for anything from Microsoft; it has a list of improvements it wants to see before it will take DocumentDB service into production.
As the name suggests, Azure DocumentDB is a document database service that runs on Microsoft's Azure cloud. There are no plans, at present, to offer DocumentDB as an on-premises product, but nor did Microsoft rule that possibility out at some future data. DocumentDB is clearly a competitive threat to MongoDB, a document database that is available on-premises and on multiple cloud platforms including Azure.
[Want more on Azure DocumentDB? Read Microsoft Azure Adds NoSQL, Search & HBase Services.]
MongoDB, the company, recently told InformationWeek that 40% to 50% of its customers access the database-as-a-service on Amazon Web Services (AWS). MongoDB is also available on IBM's Softlayer cloud infrastructure, and in June it added click-to-launch MongoDB database services on Microsoft Azure and the Google Compute Engine.
Most NoSQL databases are heavily used as cloud services because that's where many modern, high-scale applications and businesses run. That's certainly the case for Xomni, which runs omni-channel retail sales and marketing services on Microsoft's cloud. Herein lies the first reason Xomni wanted to try DocumentDB.
"Our platform is hosted in Azure, and we like to use Microsoft's out-of-the-box services," said Daron Yondem, CTO at Xomni. "DocumentDB was developed by Microsoft and it runs on Microsoft's infrastructure, so we'll be able to provide feedback and influence the product at a much lower level. With MongoDB, we'd be dependent on a third-party, open-source project where Microsoft doesn't really have access or influence."
Xomni starting experimenting with DocumentDB nine months ago. Yondem said he has connections within Microsoft as an Azure MVP customer, so he knew about the service and was trying to get his hands on it months before the private preview.
Xomni helps retailers gather data from CRM systems, loyalty programs, kiosks, digital signage, mobile apps, and more and share it with digital advertising agencies, which develop campaigns. It also aggregates data from Facebook, Twitter, and other social networks to help retailers capture comments about their brands and products, and it uses geolocation information -- from stores, mobile apps, and social check-ins -- to spot trends by region, city, and even specific stores.
Given the diversity of data that Xomni handles, a NoSQL document database was needed. The company is currently using RavenDB running on Azure virtual machines, but Yondem said the company would much rather be using a platform-as-a-service offering.
"We're a startup, and it's not like we have extra people to manage infrastructure, even if it's virtual instances running in the cloud."
RavenDB was selected more than a year ago because it offers built-in full-text search, a feature that MongoDB lacked at the time (but has since added in an April 2014 release). This brings us to the first item on Yondem's DocumentDB wish list. When Microsoft introduced DocumentDB, it simultaneously launched a public preview of Azure Search, which is a separate service. Unfortunately, DocumentDB doesn't have built-in search or an integration with Azure Search, as yet, so Xomni is doing the integration on its own.
"DocumentDB and the Search services should go together, and I'm sure at some point there will be an integration from Microsoft," Yondem said. "Using two separate services requires more developer investments, and I have to push my data twice to two different services so that Azure Search can index the text in DocumentDB."
One other area where Yondem expects to see upgrades is in the DocumentDB software development kit (SDK), which he describes as "the biggest problem" with the preview service.
"The wrappers for their API aren't mature, so we ended up rolling our own SDK to do things like integrate search." For now, Yondem said he's cutting Microsoft slack because the product is in preview, but he expects to see a richer SDK before DocumentDB hits general release.
Yondem didn't mention two DocumentDB features that Microsoft highlights as distinguishing characteristics: tunable consistency and SQL-query capabilities. The tuning feature lets you choose between transactional consistency and performance. Xomni simply chose "session consistency" and was fine with that setting, Yondem said.
As for the SQL query capabilities, Yondem said it has been a boon to his team. "Any back-end developer knows SQL, so this makes it possible to query data in DocumentDB without learning any new language."
There's little doubt that Xomni will bring DocumentDB into production as soon Microsoft declares it to be a generally available, production service. And even if workarounds are still required to integrate full-text search, he said DocumentDB will be less expensive and less burdensome to run than any non-PaaS database option, because his staff won't have to manage and license a third-party database.
So just when will DocumentDB go GA? Microsoft has been cagey about the release date, but we're guessing it won't be before text-search integrations and SDK improvements are in the bag.
What will you use for your big data platform? A high-scale relational database? NoSQL database? Hadoop? Event-processing technology? One size doesn't fit all. Here's how to decide. Get the new Pick Your Platform For Big Data issue of InformationWeek Tech Digest today. (Free registration required.)