Hacker News new | ask | show | jobs
by grandalf 3998 days ago
I have really enjoyed using neo4j. In my opinion the highlights are:

- The Cypher query language is extremely expressive. I ended up being able to represent lots of business logic succinctly using it.

- Domain modeling is natural and very natural. For me the key was writing a script to drop/recreate my development db from some basic fixtures to allow me to experiment with a few approaches before settling on one.

- So many things that are hard to discover (using other kinds of databases) or require a separate ETL, mapreduce, etc., are straightforward cypher queries.

- There is no need for an ORM or doing ugly manual joins in code. I am simply doing some basic data/input validation and then shipping the validated structure to a cypher query.

- Even things like security/acl metadata is naturally expressed via the graph, so whole layers of a typical app can be abstracted quite nicely.

2 comments

I really agree. The work I've done with Neo4j (and in particular the easy way I can query data via Cypher) blows the socks off most people I show it to.
What are some advantages of Neo4j compared to the more recent OrientDB and ArangoDB? I know Neo4j is a pure graph DB and the other 2 claim to be "multi-paradigm", but those other 2 also claim to implement most graph functionality anyone would want, on top of claims that they are both more performant than Neo4j.
A lot of it comes down to robustness. Neo4j has the advantage of simplicity and maturity when compared with multi-model dbs. Multi-models, as of now, are feature rich and reliability poor. Instead Neo4j has fewer features but just tries to do those things really really well.

It's been in mission critical prod. environments now for nearly a decade. I'm certain that in the future DSE, Orient, Arango, or someone like them will be big contenders in the space. However, for the time being, I wouldn't trust anything critical to them.