DEV Community

Sergio Garcia Moratilla
Sergio Garcia Moratilla

Posted on

Graph databases: which one?

I have been considering graph databases for a while. I have minor experience with Neo4j, but I am a total newbie about what alternatives are in the market.

I see Amazon has Neptune, there exists OrientDB, MongoDB has incorporated graph functions, ...

Has anyone built a product on top of a graph database and would like to share how the experience was? Should I stick to Neo4j?

Top comments (9)

Collapse
 
rasjonell profile image
rasjonell • Edited

I've been using ArangoDB for a while now. Although it's not as mature as Neo4j, it's constantly evolving and has some distinctive features that make it worth trying. It has a wide range of drivers so language wouldn't be a barrier.

Collapse
 
ayyappa99 profile image
Ayyappa

Can you share your experiences on ArangoDB? I'm looking to use it on a high traffic app and wondering if its a good fit.

Collapse
 
rasjonell profile image
rasjonell

I really enjoy working with ArangoDB. It's not just a database but, thanks to the Multi-Model Datastore and Foxx Microservices, it can actually be your applications whole data-layer. Meaning that you don't need a separate K/V store to hold session cookies as you can have a K/V store inside ArangoDB. You can also have queues to create recurrent/delayed jobs, and you can manage all of this with Foxx Services that sit inside your database have native access to in-memory data!

Thread Thread
 
ayyappa99 profile image
Ayyappa

Really appreciate for answering :) I have couple of questions, if you don't mind.

Do you see any limitations w.r.t key/value store or document data storage?
Till what traffic I don't need to worry about performance?
What are the average latency values for key-value or document storage?

Thread Thread
 
rasjonell profile image
rasjonell

I've mostly used the native graph model. The only time I used the k/v model for session storage I never hit enough traffic to think about performance tuning, but the community and the ArangoDB team on slack and stack overflow are really helpful if you need any assistance.

Collapse
 
devdrake0 profile image
Si

What language are you going to use to build your product?

Neo4j and Janusgraph are probably the most well known. But, if you're familiar/interested in Go I'd suggest giving Dgraph a look.

In a previous role, I created an Access Management system using it and I was impressed. I even greated some notes while I was going through it, that may help if you decide to try it out?

Collapse
 
sgmoratilla profile image
Sergio Garcia Moratilla

Mainly Java. It would be desirable if there are providers in the cloud (such as graphene for Neo4j).
I will give a look to your notes and Janusgraph, I didn't know that.

Thank you so much for your answer, you're awesome!

Collapse
 
devdrake0 profile image
Si

If you're a Java guy, I'd definitely recommend looking at Janusgraph. The open-source plan allows you to use clustering, which I don't think Neo4j does from memory.

Dgraph is Go, so maybe not your cup of tea.

You're welcome 😄

Collapse
 
sgmoratilla profile image
Sergio Garcia Moratilla

Just leaving here the link to our decision process: dev.to/sgmoratilla/choosing-a-grap...