Need advice about which tool to choose?Ask the StackShare community!

Azure Cosmos DB

589
1.1K
+ 1
130
Neo4j

1.2K
1.4K
+ 1
351
Add tool

Azure Cosmos DB vs Neo4j: What are the differences?

Azure Cosmos DB is a globally distributed, multi-model database service provided by Microsoft, Neo4j is a graph database management system. Below are the key differences between the two.

  1. Data Model: One significant difference between Azure Cosmos DB and Neo4j is their data models. Azure Cosmos DB supports multiple data models, including key-value, document, column-family, and graph models. In contrast, Neo4j exclusively focuses on the graph data model, making it ideal for complex connections and relationships between data.

  2. Scalability: When it comes to scalability, Azure Cosmos DB's design allows it to scale horizontally across multiple regions and data centers. It offers both manual and automatic scaling options, providing flexibility to handle variable workloads effectively. On the other hand, while Neo4j does support clustering to distribute the graph database over multiple machines, its scalability is comparatively limited.

  3. Query Language: Azure Cosmos DB uses SQL (Structured Query Language) for querying data, making it familiar and easy to use for developers who are already familiar with SQL. In contrast, Neo4j uses a specialized query language called Cypher, specifically designed for querying graph data. Learning and using Cypher may require additional effort for developers who are not familiar with it.

  4. Indexing: In Azure Cosmos DB, indexing is automatic by default, ensuring high performance for queries on various data models. It offers multiple indexing options to optimize query performance. On the other hand, in Neo4j, although indexing is supported, it needs to be explicitly defined by developers for properties they wish to search frequently, which may require additional effort and maintenance.

  5. Consistency Models: Azure Cosmos DB offers multiple consistency models, including strong, bounded staleness, session, and eventual consistency. Developers can choose the desired consistency level based on their application's requirements. In contrast, Neo4j provides strong consistency as the default option but lacks the flexibility to choose different consistency models.

  6. Deployment Options: Azure Cosmos DB is offered as a fully-managed service in the cloud, providing high availability, automatic backups, and seamless scaling without infrastructure management. It can be integrated with other Azure services and deployed across multiple regions globally. Neo4j, on the other hand, can be deployed in various ways, including on-premises, virtual machines, containers, or in the cloud, offering more deployment flexibility, albeit with additional management responsibilities.

In summary, Azure Cosmos DB offers multiple data models, automatic scaling, SQL querying, flexible indexing, various consistency models, and a fully-managed cloud deployment option. On the other hand, Neo4j focuses exclusively on the graph data model, supports clustering for scalability, uses the specialized Cypher query language, requires explicit indexing, offers strong consistency by default, and provides deployment flexibility.

Advice on Azure Cosmos DB and Neo4j
Jaime Ramos
Needs advice
on
ArangoDBArangoDBDgraphDgraph
and
Neo4jNeo4j

Hi, I want to create a social network for students, and I was wondering which of these three Oriented Graph DB's would you recommend. I plan to implement machine learning algorithms such as k-means and others to give recommendations and some basic data analyses; also, everything is going to be hosted in the cloud, so I expect the DB to be hosted there. I want the queries to be as fast as possible, and I like good tools to monitor my data. I would appreciate any recommendations or thoughts.

Context:

I released the MVP 6 months ago and got almost 600 users just from my university in Colombia, But now I want to expand it all over my country. I am expecting more or less 20000 users.

See more
Replies (3)
Recommends
on
ArangoDBArangoDB

I have not used the others but I agree, ArangoDB should meet your needs. If you have worked with RDBMS and SQL before Arango will be a easy transition. AQL is simple yet powerful and deployment can be as small or large as you need. I love the fact that for my local development I can run it as docker container as part of my project and for production I can have multiple machines in a cluster. The project is also under active development and with the latest round of funding I feel comfortable that it will be around a while.

See more
David López Felguera
Full Stack Developer at NPAW · | 5 upvotes · 51.3K views
Recommends
on
ArangoDBArangoDB

Hi Jaime. I've worked with Neo4j and ArangoDB for a few years and for me, I prefer to use ArangoDB because its query sintax (AQL) is easier. I've built a network topology with both databases and now ArangoDB is the databases for that network topology. Also, ArangoDB has ArangoML that maybe can help you with your recommendation algorithims.

See more
Recommends
on
ArangoDBArangoDB

Hi Jaime, I work with Arango for about 3 years quite a lot. Before I do some investigation and choose ArangoDB against Neo4j due to multi-type DB, speed, and also clustering (but we do not use it now). Now we have RMDB and Graph working together. As others said, AQL is quite easy, but u can use some of the drivers like Java Spring, that get you to another level.. If you prefer more copy-paste with little rework, perhaps Neo4j can do the job for you, because there is a bigger community around it.. But I have to solve some issues with the ArangoDB community and its also fast. So I will preffere ArangoDB... Btw, there is a super easy Foxx Microservice tool on Arango that can help you solve basic things faster than write down robust BackEnd.

See more
Needs advice
on
Azure Cosmos DBAzure Cosmos DBNeo4jNeo4j
and
OrientDBOrientDB

We have an in-house build experiment management system. We produce samples as input to the next step, which then could produce 1 sample(1-1) and many samples (1 - many). There are many steps like this. So far, we are tracking genealogy (limited tracking) in the MySQL database, which is becoming hard to trace back to the original material or sample(I can give more details if required). So, we are considering a Graph database. I am requesting advice from the experts.

  1. Is a graph database the right choice, or can we manage with RDBMS?
  2. If RDBMS, which RDMS, which feature, or which approach could make this manageable or sustainable
  3. If Graph database(Neo4j, OrientDB, Azure Cosmos DB, Amazon Neptune, ArangoDB), which one is good, and what are the best practices?

I am sorry that this might be a loaded question.

See more
Replies (1)
Recommends
on
ArangoDBArangoDB

You have not given much detail about the data generated, the depth of such a graph, and the access patterns (queries). However, it is very easy to track all samples and materials if you traverse this graph using a graph database. Here you can use any of the databases mentioned. OrientDB and ArangoDB are also multi-model databases where you can still query the data in a relational way using joins - you retain full flexibility.

In SQL, you can use Common Table Expressions (CTEs) and use them to write a recursive query that reads all parent nodes of a tree.

I would recommend ArangoDB if your samples also have disparate or nested attributes so that the document model (JSON) fits, and you have many complex graph queries that should be performed as efficiently as possible. If not - stay with an RDBMS.

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Azure Cosmos DB
Pros of Neo4j
  • 28
    Best-of-breed NoSQL features
  • 22
    High scalability
  • 15
    Globally distributed
  • 14
    Automatic indexing over flexible json data model
  • 10
    Tunable consistency
  • 10
    Always on with 99.99% availability sla
  • 7
    Javascript language integrated transactions and queries
  • 6
    Predictable performance
  • 5
    High performance
  • 5
    Analytics Store
  • 2
    Rapid Development
  • 2
    No Sql
  • 2
    Auto Indexing
  • 2
    Ease of use
  • 69
    Cypher – graph query language
  • 61
    Great graphdb
  • 33
    Open source
  • 31
    Rest api
  • 27
    High-Performance Native API
  • 23
    ACID
  • 21
    Easy setup
  • 17
    Great support
  • 11
    Clustering
  • 9
    Hot Backups
  • 8
    Great Web Admin UI
  • 7
    Powerful, flexible data model
  • 7
    Mature
  • 6
    Embeddable
  • 5
    Easy to Use and Model
  • 4
    Highly-available
  • 4
    Best Graphdb
  • 2
    It's awesome, I wanted to try it
  • 2
    Great onboarding process
  • 2
    Great query language and built in data browser
  • 2
    Used by Crunchbase

Sign up to add or upvote prosMake informed product decisions

Cons of Azure Cosmos DB
Cons of Neo4j
  • 18
    Pricing
  • 4
    Poor No SQL query support
  • 9
    Comparably slow
  • 4
    Can't store a vertex as JSON
  • 1
    Doesn't have a managed cloud service at low cost

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is Azure Cosmos DB?

Azure DocumentDB is a fully managed NoSQL database service built for fast and predictable performance, high availability, elastic scaling, global distribution, and ease of development.

What is Neo4j?

Neo4j stores data in nodes connected by directed, typed relationships with properties on both, also known as a Property Graph. It is a high performance graph store with all the features expected of a mature and robust database, like a friendly query language and ACID transactions.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Azure Cosmos DB?
What companies use Neo4j?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Azure Cosmos DB?
What tools integrate with Neo4j?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

What are some alternatives to Azure Cosmos DB and Neo4j?
Azure SQL Database
It is the intelligent, scalable, cloud database service that provides the broadest SQL Server engine compatibility and up to a 212% return on investment. It is a database service that can quickly and efficiently scale to meet demand, is automatically highly available, and supports a variety of third party software.
MongoDB Atlas
MongoDB Atlas is a global cloud database service built and run by the team behind MongoDB. Enjoy the flexibility and scalability of a document database, with the ease and automation of a fully managed service on your preferred cloud.
MongoDB
MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
MySQL
The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
Cassandra
Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.
See all alternatives