- 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.
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.
It was remarkably simple to set up, a bit harder to tune, but we ended up getting something like 5000 req/sec at <= 10ms per query sustained for several hours.
I'd highly recommend learning neo4j, if for nothing but the paradigm shift it forces you to learn.