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.
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.