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

ArangoDB

275
442
+ 1
192
Neo4j

1.2K
1.4K
+ 1
352
Add tool

ArangoDB vs Neo4j: What are the differences?

Introduction

ArangoDB and Neo4j are both popular graph databases that are used for managing and querying highly connected data. While they both serve similar purposes, there are key differences between the two.

  1. Data Model: ArangoDB is a multi-model database that supports a combination of graph, document, and key-value data models. It allows users to store data in different structures and access them through a unified query language called AQL. On the other hand, Neo4j is a pure graph database that focuses solely on the graph data model. It provides a native graph storage and processing engine, enabling efficient management of relationships between nodes.

  2. Scalability: ArangoDB is designed to scale horizontally across multiple machines through its cluster feature. It allows for automatic data distribution and replication, ensuring high availability and performance. Neo4j, on the other hand, has a master-slave replication model where a single server acts as the master and the others as slaves. This architecture limits the scalability of Neo4j compared to ArangoDB.

  3. Query Language: ArangoDB uses its own query language called AQL, which is a declarative language inspired by SQL. AQL supports various graph traversal and manipulation operations along with document-oriented queries. Neo4j, on the other hand, uses a query language called Cypher, specifically designed for graph pattern matching and querying. Cypher's syntax is highly expressive and intuitive for working with graph data.

  4. ACID Compliance: ArangoDB supports ACID (Atomicity, Consistency, Isolation, Durability) transactions at a document level, making it suitable for applications that require strong data consistency. Neo4j, on the other hand, focuses more on eventual consistency and allows for higher performance by relaxing some of the ACID constraints. This makes Neo4j a better choice for applications that prioritize scalability and performance over strict consistency.

  5. Community and Ecosystem: ArangoDB has a growing community and a rich ecosystem with a wide range of integrations, tools, and libraries. It supports popular programming languages like JavaScript, Python, and Go, making it easier for developers to work with it. Neo4j, on the other hand, has been around for a longer time and has a more established community and ecosystem. It has a larger number of third-party integrations and a wealth of resources and documentation available.

  6. Licensing: ArangoDB is available under both a free open-source license (Apache License 2.0) and a commercial license. This gives users the flexibility to choose the license that suits their needs. Neo4j also provides a free community edition under the GNU General Public License (GPLv3), but it requires purchasing a commercial license for production deployments. This difference in licensing can be a factor to consider depending on the requirements and budget of the project.

In summary, ArangoDB offers a multi-model database with support for graph, document, and key-value data models, scalable clustering, ACID compliance, and a flexible licensing model. Neo4j, on the other hand, is a pure graph database focused on the graph data model, with a powerful query language, robust community and ecosystem, and a different approach to consistency and scalability. Choosing between the two depends on the specific requirements and priorities of the project.

Advice on ArangoDB 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 · 47K 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
ArangoDBArangoDB
and
Neo4jNeo4j

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.

See more
Replies (3)
Lumais SwT
Software Development at Lumais · | 2 upvotes · 3.3K views
Recommends
on
ArangoDBArangoDB

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.

See more
Anthony Chiboucas
CMS Developer at Downstream, LLC · | 2 upvotes · 3.1K views
Recommends
on
Neo4jNeo4j

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.

See more
Michael Staub
Full-stack developer. at Autodesk · | 1 upvotes · 3K views
Recommends
on
ArangoDBArangoDB

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.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of ArangoDB
Pros of Neo4j
  • 37
    Grahps and documents in one DB
  • 26
    Intuitive and rich query language
  • 25
    Good documentation
  • 25
    Open source
  • 21
    Joins for collections
  • 15
    Foxx is great platform
  • 14
    Great out of the box web interface with API playground
  • 6
    Good driver support
  • 6
    Low maintenance efforts
  • 6
    Clustering
  • 5
    Easy microservice creation with foxx
  • 4
    You can write true backendless apps
  • 2
    Managed solution available
  • 0
    Performance
  • 70
    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
    Best Graphdb
  • 4
    Highly-available
  • 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 ArangoDB
Cons of Neo4j
  • 3
    Web ui has still room for improvement
  • 2
    No support for blueprints standard, using custom AQL
  • 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