Ask HN: Anyone use graph db in production/at scale? Like Neo4j or Arangodb?

4 points by moomoo11 ↗ HN
Please share any experiences. I'm specifically evaluating Neo4j and my sandbox testing is going well so far but I'm curious to hear from people who have far more experience.

FWIW I have a graph use case implemented with pg where I'm running into issues with recursive queries, whereas the neo4j queries are far better performant and easier to reason.

6 comments

[ 4.4 ms ] story [ 27.1 ms ] thread
Out of curiosity, what’s your problem domain?
Parts. Like auto or industrial parts and being able to assign them to specific lots and customer specific groupings etc.
This is related to a classic relational database problem called “bill of materials problem” - suggest you Google that. Also look for book on Graphs and networks in SQL by Joe Celko where he goes into modeling graphs in SQL tables. Naive formulations will lead to deeply nested joins which balloon in computational cost.
Thanks for the rec. Yeah that’s the issues I’m running into. What makes it worse is that users can define their own nesting so building the dynamic queries in application code is becoming really difficult. Add on the problem of needing to comply with a rigid external API for those consumers.

I’ve been setting up some test data in graph db and I feel like I can toss out my 1400 loc total to build the dynamic query and just have the client pass in the json of what they want.

Current new implementation is about 200 loc.

Personally I don’t mind if sql can do it or not. I care about being able to test easily, and detect and fix bugs without needing to bring out a whiteboard. Saving 1200 loc is already such a good feeling.

Without knowing the specifics of your data model I'd wager what you have is a data modelling problem not a graph problem. Maybe start with that?

There's a reason these graph DBs are esoteric. They're fun & cool to use but there's not a lot of problems they can solve better than a relational DB.

Worked at a place where the lead engineer was adamant a graph database was the solution. After two years of trying to get it launched, the project failed spectacularly.

Another team got given the rewrite and build it in six months using MySQL.