What is our primary use case?
We use Microsoft Azure Cosmos DB mostly for maintaining our user databases in the document databases. Our firm has an app where each individual user's home screen is personalized according to their preferences, web searches, and metadata. For this, we maintain tags, and those tags, associated with each individual customer's mobile number, are stored in Microsoft Azure Cosmos DB to drive personalization and hyper-personalization on the app's home screen.
How has it helped my organization?
In terms of how Microsoft Azure Cosmos DB has improved my organization, the latency for API calls is pretty good.
What is most valuable?
The best features of Microsoft Azure Cosmos DB are the way it maintains the data in partitions and its retention policies.
Their new feature, dynamic data masking, is very cool and useful for us.
Since we are one of the largest NBFCs in India, maintaining customer data in a DB, we have to take care of their personal information related to their identity. Microsoft Azure Cosmos DB rolled out this feature about six months ago. Though it's not GA yet, we are running our POC on that feature where you can hit a particular API which Microsoft has provided. Whatever fields you define in JSON, when hitting the API, it will automatically mask all personally identifiable information for each customer in the database. If you have 100 million data points for customers, according to that JSON set of rules, it will automatically mask everything. This is really helpful in our business.
Regarding search capabilities through large amounts of data, Microsoft Azure Cosmos DB performs well when using combinations of primary keys. If we want to search through one of the instances or databases, it works efficiently. The performance largely depends on how optimized your SQL query is and how effectively you use the primary keys.
What needs improvement?
In Microsoft Azure Cosmos DB, I would suggest improvements in security. If anyone who has the endpoint and has access to infrastructure can potentially affect your DB. Instead of relying on a single endpoint for authentication, having multiple authentication factors would be beneficial.
I have limited recent information about the use cases as I am about to leave my organization to pursue Masters in the US.
For how long have I used the solution?
I have been using Microsoft Azure Cosmos DB for the past three years since I joined my organization. This is my first organization, and I have been using Microsoft Azure Cosmos DB throughout this period.
What do I think about the stability of the solution?
In terms of stability for Microsoft Azure Cosmos DB, we sometimes face problems, and I would rate it a seven out of ten.
There were instances where the DB was not responding, and we lost some part of our business due to that. My impressions of the latency and availability are that most of the time it's up and running.
Issues typically occur at month-end when the load is measured due to the nature of our business, as we have to process huge chunks of data during that time.
What do I think about the scalability of the solution?
I would rate scalability for Microsoft Azure Cosmos DB as eight out of ten. It's straightforward to scale Microsoft Azure Cosmos DB. You just have to go over the portal and set your configurations for DB or different subscriptions. While scaling is easy, we were facing some stability issues.
How are customer service and support?
Technical support for Microsoft Azure Cosmos DB is great. Recently for the dynamic data masking feature, Microsoft provided us with an entire support team of three or four people who were present in our office. For any doubts or issues, we could approach them directly, and they would raise tickets accordingly. I would rate the support as eight point five to nine out of ten.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
Previously, we were using Postgres for a document DB before switching to Microsoft Azure Cosmos DB, which is also a document DB.
How was the initial setup?
The deployment was good. I was responsible for a few parts of the installation. Microsoft Azure Cosmos DB requires maintenance. The infrastructure team sometimes switches the data center and geolocation. I cannot provide much information about this since I'm not on the infrastructure team. The DB maintenance is handled by their team.
What was our ROI?
The solution has reduced costs, although not dramatically. The cost reduction is between 6% to 10%. The actual figures in my organization don't flow to my level, but according to my seniors, they were able to save between 6% to 10% after two years of optimization, not year-on-year.
What other advice do I have?
I would recommend Microsoft Azure Cosmos DB to other users due to the latest dynamic data masking feature. If a company's infrastructure primarily uses Azure products, it makes sense to use Microsoft Azure Cosmos DB for better integration. However, if your business requires a very stable DB, you should explore other options as we faced some stability issues.
On a scale of one to ten, I rate Microsoft Azure Cosmos DB a seven overall.
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: My company does not have a business relationship with this vendor other than being a customer.