3
2 Comments

Why is Neo4J Graph DB not so popular as main database?

Hey there, I've been building my product using a Graph DB (Neo4J) and it has been a enormous joy to express relationships between my objects as a simple graph.

I'm wondering today, why is it so rare to see other projects, here on IndieHacker or anywhere else, using this as a main database?

The only drawback for me is the lack of competition in the managed Graph DB space (this made me choose to host it myself for now).

on August 17, 2020
  1. 3

    I think that there are a couple of reasons, one of which you touched on... theres a tremendous amount of knowledge, best practices, and technologies built up around relational databases. It’s a known, robust, mature approach to built an application on from starter to the most mature enterprise.

    In short, theres more business risk with a graph DB. You’ll be hard pressed to find developers who know how to model application data in a graph database or know efficient graph traversal algorithms. You’ll have fewer supporting libraries and other infrastructure.

    Also, if you want to avoid vendor lock-in, there are far fewer choices. So that’s a calculated risk you’ll need to take on.

    I’ve also heard that graph databases can be much slower at scale than a relational database for certain types of queries. That’s more anecdotal than experience or research driven. However, unless you have a specific problem that was suited for a graph DB, I’d stick with a relational DB for most business applications.

  2. 2

    From my experience, I absolutely love graph DB and at scale it's really difficult to work with relational DB, the queries start to get slow and difficult if you have lots of dependencies. Currently I am working at Facebook, here most of the products are based on graphDB and some other big companies like Amazon, Ebay, Walmart etc also use graphDB. For small products or places where you don't have lots of relations with multiple data points (2nd, 3rd Degree relationship) relational db works well.

    The reason why projects don't usually use the graphDB is there is no big community behind it and tooling, documentations etc are hard to find but it's most likely to change in next few years. If we could have more open source graphDB, it will start to get attention.