Need advice about which tool to choose?Ask the StackShare community!
ArangoDB vs Neo4j: What are the differences?
ArangoDB: A distributed open-source database with a flexible data model for documents, graphs, and key-values. A distributed free and open-source database with a flexible data model for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions; Neo4j: The world’s leading Graph Database. 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.
ArangoDB can be classified as a tool in the "Databases" category, while Neo4j is grouped under "Graph Databases".
Some of the features offered by ArangoDB are:
- multi-model nosql db
- acid
- transactions
On the other hand, Neo4j provides the following key features:
- intuitive, using a graph model for data representation
- reliable, with full ACID transactions
- durable and fast, using a custom disk-based, native storage engine
"Grahps and documents in one DB" is the top reason why over 24 developers like ArangoDB, while over 55 developers mention "Cypher – graph query language" as the leading cause for choosing Neo4j.
ArangoDB and Neo4j are both open source tools. It seems that ArangoDB with 8.22K GitHub stars and 576 forks on GitHub has more adoption than Neo4j with 6.6K GitHub stars and 1.63K GitHub forks.
According to the StackShare community, Neo4j has a broader approval, being mentioned in 114 company stacks & 47 developers stacks; compared to ArangoDB, which is listed in 11 company stacks and 15 developer stacks.
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.
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.
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.
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.
Hello, I am in the step of choosing between Neo4j and ArangoDB for my graph DB. I will use it with java spring boot project. I will have a graph of Processes/VMs/Clusters/Apps and their relationships . Can you tell me the main difference between this two solutions and why i choose one of them.
Thank you.
It really depends on what you are trying to do.
Using the graphdb only as a data-store to support an app, and don't expect a complex graph? Go with ArangoDB. It's a bit lighter, and provides more flexibility in what you store in a node. However, with that flexibility comes a data-structure that is more of a mix of a graphdb and a non-relational db. It lets you do things that you really shouldn't do, like put nodes within nodes, instead of connecting them via an edge.
Need to be able to easily reflow your graph, analyze it, run algorithms against it, update it from an api, or efficiently query large and complex patterns? You'll need Neo4j.
The only drawback with Neo4j is a steeper learning curve.
In case you need only the functionality of GraphDB, operate with not too large graphs and used to Cypher query language then Neo4J is obvious choice, otherwise I would recommend ArangoDB. The latter has a hybrid storage model (Document, Key-value and Graph stores) and provides much more capabilities including the native deployment in DC/OS (ArangoDB was one of the first DBs deployable there) and Kubernetes. Also, you can deploy DApps and microservices using JS directly on top of ArangoDB, it's a full-stack solution. Neo4J is a more mature GraphDB, has more elaborated visual UI for graphs, wider community and slightly better documentation, though ArangoDB also provides pretty good documenntaion and direct support.
Having used both, I would definitely recommend ArangoDB. Not only is it multi-model, but it is more intuitive to use as a developer. And most importantly, it supports nested JSON in the graph nodes which in my opinion is a deal-breaker for neo4j. A storage engine should not influence the shape of your data models. A simple example is "node.location.lat", you can't do that with neo - you have to create a new 'location' node and connect it with an edge.
Pros of ArangoDB
- Grahps and documents in one DB37
- Intuitive and rich query language26
- Good documentation25
- Open source25
- Joins for collections21
- Foxx is great platform15
- Great out of the box web interface with API playground14
- Good driver support6
- Low maintenance efforts6
- Clustering6
- Easy microservice creation with foxx5
- You can write true backendless apps4
- Managed solution available2
- Performance0
Pros of Neo4j
- Cypher – graph query language70
- Great graphdb61
- Open source33
- Rest api31
- High-Performance Native API27
- ACID23
- Easy setup21
- Great support17
- Clustering11
- Hot Backups9
- Great Web Admin UI8
- Powerful, flexible data model7
- Mature7
- Embeddable6
- Easy to Use and Model5
- Best Graphdb4
- Highly-available4
- It's awesome, I wanted to try it2
- Great onboarding process2
- Great query language and built in data browser2
- Used by Crunchbase2
Sign up to add or upvote prosMake informed product decisions
Cons of ArangoDB
- Web ui has still room for improvement3
- No support for blueprints standard, using custom AQL2
Cons of Neo4j
- Comparably slow9
- Can't store a vertex as JSON4
- Doesn't have a managed cloud service at low cost1