Review of "Neo4J"

09 Nov 2015

Review of "Neo4J"

Ironically, traditional relational databases doesn't actually handle relation very well. They require the user to perform usually expensive JOINs to retrieve the relation. But in some cases, real-time relation is needed. Under this requirement, people switch to de-normalization, but then the user would need to handle the extra complexity. The new NoSQL databases provides the required scalability and availability, but failed to provide the relations and requires JOIN at the application level, which is even more trouble. Neo4J is created to handle complex relation storage of modern applications. It's very obvious that the most successful Internet companies nowadays put a lot of attention on relations of entities. Google organize web contents by using links as relations, LinkedIn uses connections to form organic professional networks.

Neo4J has the advantage of sharing the same format form from white board design to what you eventually see from the database. Thus ease the communication frictions of teams. And it can handle relations really well without incurring several expensive joins that usually happen in traditional databases. But Neo4J is not the silver bullet. The major drawback is it lacks the ability to do arbitrary queries as traditional relational database is capable for.

Will Neo4J be influential in 10 years? I think so. Although not a panacea, it does fill the blanks when it comes to the the storage of graph data. And a lot of systems rely on graph storage heavily.