Try our new research platform with insights from 80,000+ expert users
Lead Software Architect at CPower
Real User
Top 20
The ability to scale efficiently improves our performance and scalability
Pros and Cons
  • "Change notification works well, and the ability to process documents in a scalable way is important. This means we can efficiently thread out different operations and meet our organizational performance and scalability needs."
  • "Scaling the workloads is one of the key advantages of Cosmos, preventing the database from becoming a performance bottleneck."
  • "One area that could be improved is indexing. Some of the developers struggle with the way the indexing works. We are exploring vector indexing, which we haven't examined fully yet. Indexing is an aspect we're looking to improve upon potentially."

What is our primary use case?

We are using Cosmos DB in several different ways. We receive unstructured and semi-structured documents from partners, and we use Cosmos DB to push the data in and scale it to kick off internal processes. 

We receive notifications from our customers to take action quickly regarding the energy grid. Cosmos DB is also used in a different project for our settlement system, where it is used as a queuing engine for the change notification portion.

How has it helped my organization?

The ability to scale efficiently improves our performance and scalability. Although we haven't yet used Cosmos to improve search result quality, we believe it can be useful with vector search and data architecture improvements. We are exploring AI, but I don't think our focus will be generative. We do a lot of ML models, and we plan to restructure our data to use the data lake or leverage the efficiency of already created models to reduce our resource costs and improve efficiency. 

What is most valuable?

Change notification works well, and the ability to process documents in a scalable way is important. This means we can efficiently thread out different operations and meet our organizational performance and scalability needs. 

Cosmos DB is pretty straightforward. I'm not 100 percent an expert. I have three or four different developers up to speed on it and working on it. They do most of the daily operations, while I do a lot of the prototyping and conceptual aspects.

While we don't use the vector database system, some interesting features might benefit our future data architecture. In one of the workshops, we learned about its capabilities and how it's used as part of Copilot and the backend database. I'm thinking about AI, our data, and some performance benefits.

What needs improvement?

One area that could be improved is indexing. Some of the developers struggle with the way the indexing works. We are exploring vector indexing, which we haven't examined fully yet. Indexing is an aspect we're looking to improve upon potentially.

Buyer's Guide
Microsoft Azure Cosmos DB
April 2025
Learn what your peers think about Microsoft Azure Cosmos DB. Get advice and tips from experienced pros sharing their opinions. Updated: April 2025.
848,716 professionals have used our research since 2012.

For how long have I used the solution?

I started dabbling in Cosmos before COVID approximately four or five years ago. Initially, I just wanted to test some concepts and figure out its benefits, using the Cosmos local engine to better understand its functionality.

What do I think about the stability of the solution?

We have not encountered any issues with latency or availability. As we continue to grow and scale, we will keep assessing to ensure our expectations are met.

What do I think about the scalability of the solution?

Scaling the workloads is one of the key advantages of Cosmos, preventing the database from becoming a performance bottleneck.

Which solution did I use previously and why did I switch?

We assessed other databases like MongoDB but chose Cosmos for its object-style database capabilities, user-friendliness, and ease of access. It aligned well with our needs, and a Microsoft conference initially piqued our interest.

How was the initial setup?

Onboarding to proficiency took a couple of months. The transition from a traditional relational database programmer to an object database was straightforward. The learning curve was manageable and engaging.

What was our ROI?

I don't know how much money Cosmos DB has saved us. We're still using some of the old databases, but when phase them out, we'll see a significant cost reduction.

What's my experience with pricing, setup cost, and licensing?

The pricing model aligns with our budget. It's expected to lower overhead costs, especially as we phase out older databases. Cosmos DB is great compared to other databases because we can reduce the cost while doing the same things.

Which other solutions did I evaluate?

We considered Mongo DB among other databases, but Cosmos had the desirable capabilities we were seeking.

What other advice do I have?

I rate Cosmos DB eight out of 10.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Flag as inappropriate
PeerSpot user
reviewer2227599 - PeerSpot reviewer
Vice President, Machine Learning at a healthcare company with 10,001+ employees
Real User
Top 20
The real-time analytics capabilities allow for turnaround times in milliseconds
Pros and Cons
  • "The most valuable feature of Microsoft Azure Cosmos DB is its real-time analytics capabilities, which allow for turnaround times in milliseconds. This is crucial for applications like fraud detection."
  • "The most valuable feature of Microsoft Azure Cosmos DB is its real-time analytics capabilities, which allow for turnaround times in milliseconds."
  • "It would be beneficial if Cosmos supported batch and real-time use cases to make the system more seamless."
  • "If you want to bring the data from AWS, you must pay data egress costs. That's a pain point."

What is our primary use case?

We have numerous healthcare AI use cases, including utilization management, documentation, letter generation, and voice call creation. These are both real-time and non-real-time use cases. My team is the platform team that enables the services. The ML teams are the practitioners who work on these products. 

How has it helped my organization?

The vector database has had a significant impact by making everything searchable, and the number of potential use cases exploded when GenAI was added. We've transformed many tasks into AI machine-learning problems. We have a ton of institutional expertise across the enterprise. It's crucial to be able to bring all of that into one place, ask questions, and get answers.

What is most valuable?

The most valuable feature of Microsoft Azure Cosmos DB is its real-time analytics capabilities, which allow for turnaround times in milliseconds. This is crucial for applications like fraud detection. 

Using and optimizing Cosmos DB is relatively straightforward. We talk regularly with the Microsoft team, and hands-on help is available when needed, so the experience was seamless. 

We have migrated to Cosmos' vector database search from Azure AI Search.  We don't face too many challenges with interoperability because everything is built on Azure, and we don't have any multi-cloud applications.

Azure AI services integrate and perform well with the vector database. Sometimes, we struggle to customize the RAG pipeline instead of using the embedded settings. Those are rare use cases, but they are useful for most use cases. 

The search capabilities work well once you have your data set up. It's more of a challenge in the knowledge-based integration than the modeling side. Our data is scattered. SharePoint, Confluence, and meeting minutes data are separate. We are working actively to make all the data flow. 

What needs improvement?

It would be beneficial if Cosmos supported batch and real-time use cases to make the system more seamless. Our biggest challenge migrating data is the fact that we're a multi-cloud organization with data stored in multiple platforms like AWS and Snowflake. It's all over the place, so we are using solutions like Fabric to migrate the data. If you want to bring the data from AWS, you must pay data egress costs. That's a pain point.

For how long have I used the solution?

I have been using Microsoft Azure Cosmos DB for about two and a half years.

What do I think about the stability of the solution?

The latency numbers of Cosmos DB are satisfactory and align with expectations for clinical decision support engines.

What do I think about the scalability of the solution?

While I have not personally tested it, the information I have suggests that Cosmos DB has robust scalability capabilities.

How are customer service and support?

We have regular connections with the Microsoft team, which provides hands-on support and makes the use of Cosmos DB straightforward.

How would you rate customer service and support?

Positive

Which solution did I use previously and why did I switch?

We previously used Azure AI Search, but we are transitioning to utilize built-in capabilities in Cosmos DB.

What about the implementation team?

The platform team is responsible for enabling the services, while the ML teams use these products.

What's my experience with pricing, setup cost, and licensing?

The pricing model aligns with our budget expectations, and we get a significant corporate discount from Microsoft because we're a partner.

What other advice do I have?

I would rate Microsoft Azure Cosmos DB eight out of 10.

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 has a business relationship with this vendor other than being a customer:
Flag as inappropriate
PeerSpot user
Buyer's Guide
Microsoft Azure Cosmos DB
April 2025
Learn what your peers think about Microsoft Azure Cosmos DB. Get advice and tips from experienced pros sharing their opinions. Updated: April 2025.
848,716 professionals have used our research since 2012.
reviewer2678751 - PeerSpot reviewer
Full Stack Software Developer at a tech vendor with 10,001+ employees
Real User
Top 20
Works efficiently and it's reliable and scalable
Pros and Cons
  • "It has been very efficient so far. The team has been using it for quite a while. I am new to the team, but they always talk about how efficient it is."
  • "I would rate it a ten out of ten for stability."
  • "I had a challenging experience implementing the emulator with a Mac. I had to install the emulator in a Docker container because it is not natively compatible. A significant amount of time was spent researching how to enable HTTPS communication when connecting the container and the emulator."
  • "I am disappointed with the lack of compatibility of the Microsoft Azure Cosmos DB emulator with Mac."

What is our primary use case?

We use Microsoft Azure Cosmos DB emulator to display database contents and occasionally perform manual data edits when necessary. We utilize it for general database emulation tasks.

What is most valuable?

It has been very efficient so far. The team has been using it for quite a while. I am new to the team, but they always talk about how efficient it is. We are using the NoSQL version. It is easy to use for development. It is reliable and quick. 

It has been pretty efficient when it comes to search. I have no complaints about that. It is easy to use and very compatible with Java.

What needs improvement?

I had a challenging experience implementing the emulator with a Mac. I had to install the emulator in a Docker container because it is not natively compatible. A significant amount of time was spent researching how to enable HTTPS communication when connecting the container and the emulator. I encountered TLS and SSL errors but resolved most of them by setting an environment variable in the container and using HTTPS protocol communication. I also had to use gateway mode with the Cosmos client in my Java app. I am disappointed with the lack of compatibility of the Microsoft Azure Cosmos DB emulator with Mac. I also found a scarcity of online resources regarding this issue.

It would be great to include compatibility with various databases like graph databases, adding to the existing NoSQL and MongoDB compatibility. I have used that for various projects on other platforms, and such additions would be beneficial.

For how long have I used the solution?

I have been using it for about a week now.

What do I think about the stability of the solution?

I do not see any stability issues. I would rate it a ten out of ten for stability.

What do I think about the scalability of the solution?

It is scalable. I would rate it a ten out of ten for scalability. We have had no issues with its ability to search through large amounts of data.

We have thousands of users. We are a big organization, and it is being used at various locations.

How are customer service and support?

I love the community forums. They provide a wealth of useful information, which gives me an advantage when it comes to support. The only disappointment was not being able to find any information about setting it up on a Mac.

How would you rate customer service and support?

Neutral

Which solution did I use previously and why did I switch?

I have used the cloud-based Firestore database and MongoDB before. They largely perform similar tasks, and I have no problems using either one. They work and get the job done.

How was the initial setup?

For me, the setup was not complex because my team had everything ready.

I watched a couple of videos on YouTube. The onboarding was seamless, especially the database part. It took me no more than two days to learn the basics and necessary setup.

In terms of maintenance, it does not complain if you do not update it, but there are always updates that you can add. For example, for the emulator that I am using, there are a lot of versions I can install, but it works with most of them.

What other advice do I have?

I have no complaints. It does its job efficiently and is easy to set up. Our organization has been using it for quite some time. They must see a value in it. Otherwise, they would go for a better technology in terms of performance or pricing.

I would rate Microsoft Azure Cosmos DB a nine out of ten.

Which deployment model are you using for this solution?

Public Cloud
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.
Flag as inappropriate
PeerSpot user
Mohd Tanveer - PeerSpot reviewer
Project Associate at a consultancy with 10,001+ employees
Real User
Top 10
The high speed compared to other competitors is remarkable
Pros and Cons
  • "The high speed of Azure Cosmos DB compared to other competitors is remarkable."
  • "The high speed of Azure Cosmos DB compared to other competitors is remarkable."
  • "Overall, it is a good resource. I am not aware of the background, but it seems to currently support only JSON documents."
  • "Azure Cosmos DB is generally a costly resource compared to other Azure resources. It comes with a high cost."

What is our primary use case?

I am using it to store our data. We are using Azure Cosmos DB to store our JSON-based documents.

What is most valuable?

The high speed of Azure Cosmos DB compared to other competitors is remarkable. It is one of the most powerful features, offering high availability and high speed. Its benefits can be seen immediately after the deployment.

What needs improvement?

Overall, it is a good resource. I am not aware of the background, but it seems to currently support only JSON documents. They could expand their scope to support other types of data, such as XML or EDI formats. EDI is an old technology, but it is still in high use in supply chain and retail industries.

For how long have I used the solution?

I have more than two years of experience with Azure Cosmos DB, whereas with Azure, it has been more than four years.

What do I think about the stability of the solution?

Choosing the correct partition key is crucial, as it affects our database speed and related operations.

Latency and availability depend on the consistency level.

What do I think about the scalability of the solution?

It is a Platform as a Service, so we are concerned about the underlying interface. We can move to a higher tier as all Azure cloud resources are open to easy scaling.

Which solution did I use previously and why did I switch?

It offers an option alongside the Azure SQL database. Azure SQL database has its own capabilities, whereas Azure Cosmos DB supports all major big data requirements like Cassandra and Gremlin. Azure SQL database is more focused on transactional data instead of analytic data. Azure Cosmos DB covers a wider area.

How was the initial setup?

I have not personally deployed Azure Cosmos DB, but DevOps pipelines provide options for this. It should be easily deployable with the help of Microsoft's documentation.

It takes a couple of minutes to be up and running. It also depends on how we are deploying, whether it is via an ARM template, Azure pipeline, or directly via Azure release.

What's my experience with pricing, setup cost, and licensing?

Azure Cosmos DB is generally a costly resource compared to other Azure resources. It comes with a high cost. We have reserved one thousand RUs. Free usage is also limited.

What other advice do I have?

It is not like a traditional database. Choosing the partition key needs an understanding because it will affect the database speed. By making your partitions in a logical and efficient way, you can improve the speed of search analysis.

I would rate Azure Cosmos DB an eight out of ten.

Disclosure: My company has a business relationship with this vendor other than being a customer: Partner
Flag as inappropriate
PeerSpot user
Joel Nation - PeerSpot reviewer
CTO at Imminently
Real User
Top 20
Significantly reduced our total cost of ownership but the indexing capabilities have room for improvement
Pros and Cons
  • "Cosmos DB's greatest strengths are its easy setup and affordability, especially for those who understand its usage."
  • "The current data analytics of Cosmos DB is inefficient for large-scale queries due to its transactional design."

What is our primary use case?

We develop SaaS applications for our products and external clients, utilizing Cosmos DB as the data storage layer for all semi-structured data.

We chose Cosmos DB because it addressed our need to store and query data with varying structures. While object storage is cost-effective for large datasets, it lacks querying capabilities. Traditional relational databases like SQL Server or Oracle are expensive and inflexible, posing challenges for our dynamic data models and frequent changes. Cosmos DB provided a solution with its dynamic data model and efficient querying capabilities, allowing us to accommodate diverse customer needs and evolving data structures.

How has it helped my organization?

Our focus is primarily on data filtering and querying rather than extensive text-based searches. While we previously utilized alternative products, we now predominantly rely on Cosmos DB for these tasks due to its ease of use and management. This allows us to quickly onboard customers, especially startups and smaller businesses with evolving needs, as Cosmos DB's flexibility enables rapid data model modifications without significant data management concerns.

For basic queries, Cosmos DB is a very fast and efficient option.

The main benefit of Cosmos DB is its flexibility. It's easier for our developers to work with than previous solutions, and it's better for our customers because we can quickly change and optimize the data structure as needed, eliminating the need to explain limitations. We've also observed that Cosmos DB has improved over time.

Leveraging our prior experience with similar systems, we immediately recognized the advantages of Cosmos DB. Its quick setup streamlined our implementation process, and after addressing a few minor challenges, we could utilize it effectively and efficiently.

Cosmos DB has significantly reduced our total cost of ownership compared to the more expensive alternative we previously used. It's a much cheaper and more efficient solution for our use cases. However, as some of our customers grow, we need to be more strategic with our implementation, requiring additional engineering and planning to keep costs down. While Cosmos DB is initially inexpensive, managing costs at scale requires proactive measures.

Cosmos DB is easy to learn if you're familiar with NoSQL databases, as the concepts are essentially the same. You'll quickly grasp it if you understand NoSQL principles. However, if you're unfamiliar with NoSQL, it might take longer, as Cosmos DB differs from traditional databases. This learning curve applies to all NoSQL products, as understanding the fundamental differences between NoSQL and traditional databases is crucial.

What is most valuable?

Cosmos DB's greatest strengths are its easy setup and affordability, especially for those who understand its usage. Compared to products like Oracle's Autonomous JSON, Cosmos DB offers greater driver and code support, making it significantly easier to learn and use.

What needs improvement?

Cosmos DB is quick at searching through basic datasets, though its indexing capabilities may not be as robust as some competitive solutions. This can make it challenging to perform complex queries on large datasets.

The current data analytics of Cosmos DB is inefficient for large-scale queries due to its transactional design. While tools like Synapse can transfer data to an analytical store, there's no effective way to utilize that data. Cosmos, in particular, is not optimized for analytical queries, especially with large datasets, and lacks the cost-effectiveness of solutions like Oracle Autonomous JSON, which seamlessly integrates analytical capabilities. Although Microsoft offers various tools, a comprehensive solution for efficient analytical queries within this system remains elusive, short of implementing a full-blown SQL Server.

For how long have I used the solution?

I have been using Microsoft Azure Cosmos DB for two to three years.

What do I think about the stability of the solution?

The latency and availability of Cosmos DB have been excellent. I haven't had to worry about it; the latency has been consistently low, and I can't recall the last time we experienced an outage or performance issue.

Cosmos DB has only been down once the entire time we've used it, and the outage lasted only two hours.

I would rate the stability of Cosmos DB nine out of ten.

What do I think about the scalability of the solution?

Cosmos DB offers scalability when implemented correctly, often in conjunction with other tools to achieve specific scaling requirements.

Cosmos DB's scalability has reduced our overhead by allowing us to efficiently manage costs across different environments, from minimally used development settings to high-demand production environments. Its robust architecture supports diverse applications, including medical and government settings, with sensitive data, ensuring reliable performance and scalability. While proactively addressing potential scaling challenges, we maintain a strategic approach by selectively utilizing Cosmos DB for optimal data management.

How are customer service and support?

We have a good relationship with Microsoft engineers in our region, and some Cosmos leads in Australia. They have responded to any problems we have had with the system.

How would you rate customer service and support?

Positive

Which solution did I use previously and why did I switch?

We previously used Oracle Autonomous JSON Database, a NoSQL version of Oracle database, and MySQLX, a variation of MySQL supporting unstructured data. Choosing between MySQLX and Cosmos DB is a tough decision. While MySQLX offers powerful SQL querying and analytics that Cosmos DB lacks, Cosmos's distributed nature eliminates concerns about backups and disaster recovery, unlike MySQLX.

How was the initial setup?

Deploying Cosmos DB was remarkably easy. It's the one Azure product I install without worries, as it consistently performs reliably.

What was our ROI?

Cosmos DB is a valuable resource for our customers because it eliminates the need to set up and manage complex database systems. Its ease of use and global distribution capabilities make it a cost-effective solution for our SaaS product. Unlike alternatives such as SQL Server, which require dedicated database administrators, Cosmos DB allows us to achieve the same results without extensive engineering resources.

What's my experience with pricing, setup cost, and licensing?

Cosmos DB is cost-effective when starting but requires careful management. In my experience with customers, I emphasize that improper use can lead to significant expenses, while correct implementation ensures cost-effectiveness.

What other advice do I have?

I would rate Cosmos DB seven out of ten. If they can fix the analytics issues, Cosmos DB would be a great product.

Cosmos DB presents a trade-off: it's easy to start using and deploying systems, but optimization can be challenging and expensive without proper indexing and data modeling. Efficient querying, especially with large datasets, requires careful planning due to the platform's architecture.

Our organization has a few engineers who directly use Cosmos DB. We have a diverse client base, ranging from small to large enterprise organizations, who utilize our products built on various technologies, including Cosmos DB.

Our comprehensive suite of DevOps tools enables seamless transitions between databases as needed. This streamlined process allows most of our engineers to quickly onboard to Cosmos DB within a week.

If you're using Azure and need a simple, easy-to-start database, and NoSQL makes sense for your needs, Cosmos DB is a good choice. It's a solid product with excellent Microsoft SDKs and enterprise-focused support. While Mongo might offer more developer-focused features, Cosmos DB prioritizes security and scalability, making it easier for enterprises to get started quickly.

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.
Flag as inappropriate
PeerSpot user
Shahid Syed - PeerSpot reviewer
Director of Technology at Unite Digital LLC
Real User
Top 10
Achieving cost efficiency through schema flexibility and partition-based scaling
Pros and Cons
  • "As a NoSQL database, it offers schema flexibility which simplifies design and reduces initial engineering overhead."
  • "We encountered an issue with Cosmos DB's recently introduced hierarchical partition feature."

What is our primary use case?

We use Cosmos DB as our primary data store for all the different software services we offer.

How has it helped my organization?

Using Cosmos DB requires a shift in mindset due to the inherent differences between NoSQL and traditional relational databases. Those familiar with SQL Server, for example, will need to adjust to the fundamental differences between the systems. While there's an initial learning curve, Cosmos DB ultimately offers significant flexibility.

Cosmos DB offers several immediate and long-term benefits. First, it eliminates the need for extensive upfront database design, as its flexible schema allows for easy adjustments to data management. Second, it significantly reduces maintenance requirements compared to relational databases, which demand constant attention to tasks like index management and addressing issues arising from large table sizes. Cosmos DB avoids these issues, resulting in substantial cost savings over time.

Cosmos DB significantly reduced our total cost of ownership by approximately 40 percent due to recent design changes, specifically a feature called partition-based scaling.

The onboarding process for Cosmos DB is quick, due to the comprehensive documentation.

What is most valuable?

As a NoSQL database, it offers schema flexibility which simplifies design and reduces initial engineering overhead. This allows for rapid product delivery, especially for initial versions. The change feed is instrumental to our design and handling of data changes. Recent additions like partition-based scaling have significantly reduced costs of over $25,000 per month with minimal effort. These are just a few of the top features we appreciate about Cosmos DB.

What needs improvement?

We encountered an issue with Cosmos DB's recently introduced hierarchical partition feature. After enabling it, we discovered that the web-based Cosmos Explorer tool sometimes fails when hierarchical partitioning is disabled. Although it usually works, we occasionally encountered situations where we couldn't query and manually inspect data in the Cosmos Data Explorer within Azure. We believe this is a significant issue and anticipate a fix will be released soon, although it may already be resolved.

For how long have I used the solution?

I have been using Cosmos DB for ten years.

What do I think about the stability of the solution?

Cosmos DB has demonstrated excellent stability with no issues encountered.

What do I think about the scalability of the solution?

Cosmos DB is extremely easy to scale up, and changes usually take just a few seconds to a few minutes.

How are customer service and support?

The customer service was quick and to the point during our limited interaction. The correct information was conveyed without the typical pain associated with support systems, where someone with little product knowledge addresses issues.

How would you rate customer service and support?

Positive

How was the initial setup?

The deployment is straightforward and generally takes about fifteen minutes to complete. Initial database provisioning requires five to ten minutes, followed by a minute or two to create the necessary tables and containers.

What about the implementation team?

The deployment process is automated using ARM templates, allowing developers to initiate deployments by clicking buttons within the Azure DevOps tools.

What was our ROI?

Using partition-based scaling, we achieved about 40 percent savings in costs for Cosmos DB.

What's my experience with pricing, setup cost, and licensing?

The Cosmos DB pricing model, initially quite complicated, became clear after consulting with Azure Advisor, allowing us to proceed with confidence.

What other advice do I have?

I rate Cosmos DB ten out of ten.

While there is a learning curve when transitioning from traditional SQL databases to NoSQL databases, this is not specific to Cosmos DB. Regardless of the provider, understanding NoSQL requires a shift in approaching data storage and retrieval, particularly for those familiar with relational databases. This inherent learning curve stems from the fundamental differences between the two database types and necessitates learning new concepts and techniques for effectively working with NoSQL databases.

No maintenance is required.

For newcomers, it is crucial to understand that despite the SQL API, Cosmos DB is not a traditional SQL database. Many issues arise when trying to apply relational database principles. Understanding NoSQL databases' limitations and adapting to the mindset required is essential.

Which deployment model are you using for this solution?

Public Cloud
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.
Flag as inappropriate
PeerSpot user
Alexander Amante - PeerSpot reviewer
Chapter Lead - IoT Full Stack Development & DevOps at Spark New Zealand
Real User
Top 20
Has the standout ability to do data compression easily and scale horizontally
Pros and Cons
  • "The standout features are its ability to do data compression easily and the ability to scale horizontally."
  • "Azure Cosmos DB for NoSQL has a less developed interface and fewer SQL commands than MongoDB, and its community support is also smaller."

What is our primary use case?

We mainly use it as the database for our platform, which is an application that users use as an interface for their IoT products. I work in the IoT chapter, and we developed an application where customers can manage their IoT devices and have a holistic view of their deployment. All data is aggregated in our database, cleaned up with ETLs, and stored in Cosmos DB.

When dealing with IoT products, we encounter massive amounts of data, unlike in commerce, where traffic and data fluctuate. IoT devices, especially ours, generate constant data streams every five minutes, necessitating robust handling. We chose Azure Cosmos DB, specifically the PostgreSQL version, for its ability to store massive amounts of data without performance degradation, thanks to its columnar storage feature. This allows us to compress older data, such as telemetry data older than two years, which is crucial for managing the ever-growing volume of information. Even with compression, we maintain fast access to the data, ensuring optimal application performance.

How has it helped my organization?

I had prior experience with MongoDB on Azure, a platform developed by Microsoft. Since we already used Azure, integration with Cosmos DB, Azure's native NoSQL database, was significantly faster than a standalone MongoDB instance. While Azure offers integration with MongoDB, utilizing Cosmos DB simplified the process due to the readily available APIs. Similarly, Azure PostgreSQL also streamlined integration because it is a Microsoft product, eliminating the need to work with a third-party vendor.

As the only database I've used extensively, particularly with Spark, I recently re-architected our application to identify performance bottlenecks. Surprisingly, Azure Cosmos DB consistently demonstrated exceptional speed, executing complex queries in under 100-200 milliseconds. This contradicted our initial hypothesis that the database was the primary cause of slowdowns. It proved to be one of the most efficient components, requiring minimal optimization. Therefore, Cosmos DB has proven optimal for searching through our organization's large datasets.

We have only used Azure Cosmos DB, so there isn't much reference to compare. However, within our chapter, when dealing with other chapters, there is a noticeable difference in performance in our application. The biggest differentiator in performance and speed for applications is typically the database, and having a speedy database solves a lot of performance issues.

Cosmos DB has provided excellent latency and availability. We have not experienced any database inaccessibility, downtime, crashes, or unexpected bills due to data spikes, even with the massive amounts of data we handle.

A single PostgreSQL node can handle a massive workload of telemetry data, eliminating the need for horizontal scaling in our case. Its impressive capacity and resilience ensure smooth operation even during spikes or large influxes of data.

What is most valuable?

The standout features are its ability to do data compression easily and the ability to scale horizontally. We initially used Azure Cosmos DB NoSQL, a document-based database, but as our application grew, we realized the relationships between entities were becoming more complex and NoSQL was no longer suitable. To address this, we migrated most of our data to Azure Cosmos DB for PostgreSQL, a relational database, while retaining the original NoSQL database for telemetry data. This approach offers two key benefits: simplified data compression, thanks to seamless integration with our ORM, Prisma, and horizontal scalability, providing the flexibility to expand our database capacity as needed quickly.

What needs improvement?

Azure Cosmos DB for NoSQL has a less developed interface and fewer SQL commands than MongoDB, and its community support is also smaller. Additionally, Azure Cosmos DB for PostgreSQL users face the challenge of not having a portal for running queries.

Microsoft could improve its pricing, and the way request units are purchased. The current system requires users to pre-purchase an estimated amount of requested units, often leading to unused units and unnecessary costs. This pre-purchase model is inefficient and inconvenient for users. Overall, the pricing structure must be more flexible and transparent to align with actual usage.

For how long have I used the solution?

I've used Cosmos DB for three years now at Spark New Zealand, and even before that, I worked on Cosmos DB inconsistently until my current company exclusively used it.

What do I think about the stability of the solution?

I would rate Cosmos DB's stability eight out of ten. We haven't experienced any significant stability issues or downtime.

What do I think about the scalability of the solution?

Scalability for Cosmos DB PostgreSQL is rated around eight point five out of ten. The single node is capable of handling massive loads, and we haven't needed to scale horizontally yet.

How are customer service and support?

In the three years of using Azure Cosmos DB, we never needed to contact support, indicating its reliability.

How would you rate customer service and support?

Positive

Which solution did I use previously and why did I switch?

I have used MongoDB previously. The integration with Microsoft Azure and its products is faster and easier compared to MongoDB.

How was the initial setup?

Deploying the NoSQL database was simple, but the PostgreSQL deployment proved more complex. Initially, it was particularly challenging due to limited resources; it was around when Microsoft acquired Citus, and comprehensive materials were scarce. The lack of a dedicated portal further complicated the process, making tasks like running queries more difficult than the user-friendly Azure portal available for NoSQL.

The Cosmos DB PostgreSQL deployment, including investigation and testing, took one week, while the deployment itself only required two days.

What about the implementation team?

There were around ten to twelve people involved in building the application using Cosmos DB. Other teams within our organization might also use it.

What was our ROI?


What's my experience with pricing, setup cost, and licensing?

Pricing is mid- to high-end. The way request units are purchased is atypical, as they must be bought ahead of time based on expected usage, which can be inefficient.

Which other solutions did I evaluate?


What other advice do I have?

I would rate Cosmos DB eight out of ten.

Cosmos DB, particularly the PostgreSQL setup, can be relatively maintenance-free. While the service itself requires no active maintenance, optimizing for cost-efficiency may involve implementing scripts to compress older data, as demonstrated in the PostgreSQL example. This proactive approach minimizes the need for ongoing maintenance, ensuring the application remains hassle-free.

Our Cosmos DB, deployed in a single region, primarily serves businesses and establishments rather than individual users. Each customer typically has only a few users on the app. Our primary concern isn't the number of users but the volume of telemetry data generated by devices at each establishment. These devices transmit data every five minutes, resulting in a constant influx of information 24/7, 365 days a year.

Within my chapter, around 15 people are using Cosmos DB.

For NoSQL, I would recommend it if you are already using Azure. For PostgreSQL, the lack of a query portal is a downside, but the features it offers can justify its slightly higher price.

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.
Flag as inappropriate
PeerSpot user
Yoni Nijs - PeerSpot reviewer
CTO at Zero Friction
Real User
Top 20
Provides a lot of flexibility, instant scaling, and outstanding performance
Pros and Cons
  • "It gives us a lot of flexibility. The scaling is instantaneous as well. You immediately have all the resources available."
  • "There are multiple approaches to implementing multitenant architecture on Azure Cosmos DB, but there is still no single or best-recommended approach when you have a big variance in the size of your tenants. That is something that still needs to be worked on."

What is our primary use case?

We use Azure Cosmos DB as our data storage or database technology platform, and we use it as the backing storage of our metering and billing back office system.

We have an energy metering and billing solution, a SaaS billing solution, which is responsible for the whole back office for district heating and cooling suppliers. Our platform is responsible for the ingestion of time series data, and at the end of the processes, we generate invoices, which are sent out to customers. On top of that, we provide a consumer portal where consumers can view their energy usage and consult their bills. 

They are two separate products, and both are using Azure Cosmos DB. The B2C or the consumer portal is using Azure Cosmos DB serverless because of its very spiky nature. It is very unpredictable how many users will be using the B2C portal, and the back office application is using Azure Cosmos DB with provisioned throughput with auto-scale configured, which makes it very scalable and still cost-effective.

How has it helped my organization?

The uptime is very good. Over the six years that we have been working with Azure Cosmos DB, it has not let us down even once. We never had any downtime with the service. There is a very high SLA. We do not use the multi-region scale and multi-region deploys, but what we do use is the availability zone setup on Azure Cosmos DB, so we have West Europe and North Europe paired, which makes it very cost-effective to have a failover to a different data center in the same availability zone on Azure. That is the most important part.

Its performance is outstanding. It is very fast. Its evolution and the approachability of the product team have also been good. I have been working with their product team for a while. They have sent over a lot of questions and we have had a lot of interviews, calls, conversations, and discussions on how to best approach certain architectural decisions. We can also discuss and understand how to adapt new features to our infrastructure or architecture to use those features to the fullest. I appreciate it. They are very reachable.

With regards to optimization, it might sometimes be a black box. It is not like SQL where you have indexes, for example, and you have a query plan with indexes, so you can set up and tune to improve your query performance. In Azure Cosmos DB, by default, everything is indexed, which can be good, but it can also be bad because it can impact performance. It is difficult to understand which indexes you really need. You have the basic indexes, all fields being indexed, but then you have composite indexes, which are not created automatically. You need to create them manually. It is difficult to get insight into what type of composite indexes you need, so there is some work there. On the other hand, you can easily follow the resource usage. You can monitor whether your databases are nearing their full resource availability. You either need to scale up or adapt auto-scaling. That is useful with regard to usage. If you are used to NoSQL, you should be able to get up to speed with that pretty fast. We use Azure Cosmos DB for NoSQL. That is a specific provider. We do not use MongoDB, Cassandra, and so on. That means that the syntax to query is SQL. You use a sort of SQL syntax, so the step is really small to go from a different NoSQL provider to Azure Cosmos DB. Of course, if you go from a relational database to a NoSQL database, that is a different story.

We could see its benefits immediately after we deployed it. Immediately after we started, it became very clear that it is very accessible and very user-friendly. It is a managed service. It is not like you set up a SQL and you need to do everything yourself. It is a managed service, and you have global distribution automatically. You set a checkbox, and you have a globally distributed database with high availability and continuous backups set up. It takes away a lot of the pains that you encounter as a startup company that needs to interact with enterprise customers. Our target audience is enterprise B2D customers who have specific requirements around data residency, backup and restore, high availability, and so on. Azure Cosmos DB makes it very easy to comply with those requests.

What is most valuable?

The flexibility and scalability are valuable. You have multiple models. You have serverless, and then you have provisioned throughput, auto-scale throughputs, and so on on top of reserved capacity possibilities where you prepay for capacity. I like that. It gives us a lot of flexibility. The scaling is instantaneous as well. You immediately have all the resources available. The fact it is NoSQL makes it powerful. 

What needs improvement?

Resource governance across tenants is something that requires some work. There is some room for improvement there. We are a multitenant solution. We decided to follow a certain approach in our architecture, which had an impact on the Azure Cosmos DB. There are multiple approaches to implementing multitenant architecture on Azure Cosmos DB, but there is still no single or best-recommended approach when you have a big variance in the size of your tenants. That is something that still needs to be worked on.

The monitoring aspect can also be better. There should be better monitoring of the costs versus the performance. That is sometimes difficult. It is easy to see or track performance monitoring and separately track your bill, but it is difficult to view the overall picture in terms of the relationship between the cost and the performance. That is something they still have to work on.

For how long have I used the solution?

We have been using Azure Cosmos DB since August 2018. It has been a bit more than six years.

What do I think about the stability of the solution?

I would rate it a ten out of ten for stability. We did not encounter any downtime. We never encountered any drops in latency. It is a very stable product.

What do I think about the scalability of the solution?

It depends on how deep your pockets are, but it is very flexible. If you have a good architectural setup, you can easily scale with it. Scaling is almost instantaneous. It is pretty flexible.

How are customer service and support?

I have interacted with their support. If I have issues, I log a support request with Azure, and then it goes via Azure. If I have architectural questions and so on, I already have a lot of contacts within the Azure Cosmos DB product team. I can contact them to get a better understanding. They are very reachable. Most of the time, I get an answer within a few days. I would rate their support an eight out of ten.

How would you rate customer service and support?

Positive

How was the initial setup?

It is a cloud deployment. Its initial deployment is easy. You set up the Azure Cosmos DB instance. It takes a few minutes. One person can definitely set it up.

The time taken by a team to be onboarded with Azure Cosmos DB varies. It depends a bit on whether the user has any experience with NoSQL or not. If he has experience with NoSQL, it would take a few days or months to get up to speed and understand how to use the platform in a day-to-day fashion. There are also advanced features and concepts. For example, if you are using SQL Server, not everybody understands to the fullest how a cluster index works behind the screens, but they do know how to use a query or how to write a query, so there is a difference. Writing a query and so on takes a few days, and that is it. Understanding the concepts of partitioning, such as logical partitions, physical partitions, scaling on those partitions, the quota requirements, high availability and so on might take a few weeks, which still is not that much.

Once you are used to the concepts of throughputs, scaling, or request units, it is easy. In terms of the learning curve as a whole, it is not the easiest, but it is right above it.

Its maintenance is all being taken care of by the Azure Cosmos DB team.

What was our ROI?

It is hard to say if Azure Cosmos DB helped decrease our organization’s total cost of ownership because we started with a greenfield application. We built something from scratch and immediately started using Azure Cosmos DB. However, there have been two features that have created an impact on TCO. These two features that were released helped to not increase our TCO in one-to-one correlation with the number of customers we have. We have the auto-scale functionality, which is two or three years old now. It made a big difference in the cost. The second one is the dynamic per partition and per region auto-scale functionality. We enrolled in it during a private preview, but it went GA just recently. That decreased the bill as well.

What's my experience with pricing, setup cost, and licensing?

It is expensive. The moment you have high availability options and they are mixed with the type of multitenant architecture you use, the pricing is on the higher end.

Which other solutions did I evaluate?

We had a look at MongoDB but decided not to use it because the managed service of MongoDB was not so powerful compared to Azure Cosmos DB. You still have a DIY approach with MongoDB and you set up everything yourself, but as a startup, your resources are limited, so you do not want to spend time on setting up the infrastructure.

We also had a look at Postgres. I have a few options in Postgres to do NoSQL, but the actual NoSQL power of Azure Cosmos DB really makes a big difference. We could not find a better solution for that.

What other advice do I have?

We do not use the built-in vector database capability. At the moment, we do not use anything for that. We do use all change feeds, all versions, and deletes to link with Microsoft Fabric to populate the data warehouse. We do not use mirroring yet because mirroring has a few limitations. That blocks us from using it.

Azure Cosmos DB has not helped us to improve the search result quality in our company. That is not something of importance in our application. It is an ERP application.

Overall, I would rate Azure Cosmos DB a nine out of ten.

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.
Flag as inappropriate
PeerSpot user