What is our primary use case?
I have three different products using Azure Cosmos DB. The most extensive use is in a survey platform we are developing as a SaaS product. Azure Cosmos DB serves as the primary OLTP database for this platform. We do not have any other RDBMS for this use case.
We also use it to store configuration information for campaigns for the other two products, but it is used extensively for the survey platform.
How has it helped my organization?
Azure Cosmos DB offers horizontal scalability, making it easy and cost-effective without additional effort from a DBA or DevOps team. Configuration for scaling is user-friendly through the UI.
It is easy to use and optimize once you understand the basics, partitions, and indexing. By default, it indexes every field and attribute, but you can customize it. The documentation is good. It makes logical sense. I have had some experience with other NoSQL solutions. It is easy to use. We do not find anything challenging. The way it indexes and does the filtering of data is easy.
What is most valuable?
The fact that scalability can be achieved by simply configuring availability zones is very attractive. We aimed to avoid managing a NoSQL database, especially when we did not have an upper limit on how much audio we would need while doing the initial development. The ability to easily scale with the increase in usage and adoption of our product is the most valued feature.
What needs improvement?
A limitation in Azure Cosmos DB is the 2 MB document size. Developers need more systemic support in chaining multiple documents if more than 2 MB is required. Compared to competitors like MongoDB, which allows for gigabyte-sized documents, Azure Cosmos DB's limit is small. An improvement could include increasing the document size or providing a method to manage larger sets efficiently. If they want to keep a 2 MB limit, they should provide a way to chain multiple documents in a systematic way so that developers do not have to figure out what to do when a document is larger than 2 MB. For some use cases, the 2 MB size is very small. If they improve this aspect, a lot of customers will benefit from it.
Another area for improvement is making it available on different cloud providers. Currently, Azure Cosmos DB is an Azure-only offering. Not supporting other cloud providers results in Microsoft losing some customers.
Buyer's Guide
Microsoft Azure Cosmos DB
January 2025
Learn what your peers think about Microsoft Azure Cosmos DB. Get advice and tips from experienced pros sharing their opinions. Updated: January 2025.
831,615 professionals have used our research since 2012.
For how long have I used the solution?
I have been using Azure Cosmos DB extensively for the last four years. Before that, it was more of hobby research.
How are customer service and support?
We have an account manager. We reach out to that account manager wherever we need level 2 or level 3 support. We have also followed the normal process of raising a ticket, but sometimes, it helps to speed up the process.
Ordinary issues are resolved through standard processes, but for complex matters, we leverage our account manager to access senior engineers. We have received great support. Support has been responsive and effective. I am very happy with their support.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
We have not replaced any solution with Azure Cosmos DB for this use case, but we have used MongoDB, Elastic, and other NoSQL databases.
Almost anything that you can do in Azure Cosmos DB can also be done in MongoDB, but one of the things that I like about Azure Cosmos DB is called change detection. Changes in each document can be persisted in some other technologies. It could be in fabric or SQL Server. This feature gives Azure Cosmos DB an edge over others in use cases where you need to detect a change and then connect it with other things. I also like the functions and stored procedures that Microsoft has implemented in Azure Cosmos DB, but the change detection feature is probably one of the best features. It works natively within the platform and Azure.
How was the initial setup?
The initial setup is very easy and seamless. An instance can be deployed in minutes, and the UI allows for easy configuration and scaling without disrupting operations.
I recently needed to upgrade an Azure Cosmos DB instance. In the UI, I clicked the option to scale it higher. It said that it could take a couple of hours. I thought it would take four or five hours, but it finished in two or three hours and notified me when the upgrade was completed. All this while, things were working and operational, and behind the scenes, it was upgrading to a bigger instance. It finished the upgrade in half the time. It can spin up a small instance in just a few minutes.
It took us about two weeks to do the PoC to make sure that Azure Cosmos DB was the right one for our use case. After the PoC, we started leveraging Azure Cosmos DB within a month. Our use cases have become more and more sophisticated because we are still developing software, which requires us to create different documents and different structures of those documents in Azure Cosmos DB. The onboarding itself was simple and natural. We did not feel that using Azure Cosmos DB slowed us. In fact, it was seamless because the JSON that our APIs needed could directly be persisted in Azure Cosmos DB. No other transformation was needed.
Its learning curve is small. It is easy to learn. The documentation of Azure Cosmos DB is good.
It does not require any maintenance, but a couple of times, we had to change our partition scheme and write a separate utility to transition from one partition scheme to the other. It was more of a migration that we had to do of the Azure Cosmos DB document that we had created. Because we changed the partitioning scheme, we had to migrate the old data to the new partition design. Azure Cosmos DB does not require any maintenance work. That is the beauty of how NoSQL, and Azure Cosmos DB in particular, have been designed.
What about the implementation team?
All implementations were done in-house without any external consultants. It is a one-person job.
What was our ROI?
The horizontal scalability helps lower the overall cost of ownership as compared to managing MongoDB or any RDBMS solution. Because of its ease of use and the fact that the scaling, configuration, and backup are managed in Azure, we do not need a dedicated DBA. We do not even need the DevOps people to manage it.
The management of Azure Cosmos DB is easy because of the UI and the way it scales. We have availability zones and multi-region load balancing. When you take all that into consideration, the total cost of ownership is much lower than others.
Azure Cosmos DB is costly, especially if you have not optimized it. However, we are very satisfied with it. It provides the value for what we are paying.
What's my experience with pricing, setup cost, and licensing?
Its price is very good for the basic stuff. When you go to a more complicated use case, especially when you need replication and availability zones, it gets a little costly.
It represents the biggest cost item for us. However, the cost is aligned with the value provided. It has served our needs perfectly, aligning with our scaling and development requirements, so the cost of ownership seems justified.
Which other solutions did I evaluate?
We did a number of PoCs to decide which NoSQL database to use, and we settled on Azure Cosmos DB. We could see its benefits when we incorporated the partition key with indexing. The performance started improving when our engineers started exploring some of the complex concepts.
What other advice do I have?
Overall, I would rate Azure Cosmos DB an eight out of ten.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Microsoft Azure
Disclosure: PeerSpot contacted the reviewer to collect the review and to validate authenticity. The reviewer was referred by the vendor, but the review is not subject to editing or approval by the vendor. The reviewer's company has a business relationship with this vendor other than being a customer: Partner