You want the best, of the best, sir? Can you handle the truth? Do you want to be a noSQL contender? Then you should check out one of the best, if not THE best, noSQL database out there: Neo4j. What makes Neo4j so great? The list is quite long, but the source of all the items on the list is the team behind Neo4j. They continue to put out a solid and reliable product with considerable and noticeable improvements between releases. This consistency in quality and quantity (of releases including new features and bug fixes) is quickly building a community. Communities, in turn, make great open source projects even greater. Thus, Neo4j is poised to become the next great open-source database.
Neo4j’s necessarily isn’t the best option for every future project. However, if your data can be represented in a node-relationship (graph) form, then Neo4j should be near the top of the list. One of the core examples of this type of data exists in social sites. Storing information like ‘Bob follows Fred’, or ‘Bill and Susan are friends’ is simple enough in traditional relational databases. However, as the number of users and relationships grow, the efficiency quickly drops. In a graph database, each person represents a node in the graph, and a limitless number of relationships are represented by edges leaving and/or entering the node. The node itself can store information (name, location, job, etc.), but the real power lies within the edge storing data. For instance, one edge leaving Fred and connecting to Jill can represent a ‘BLOCK’ relationship. Another edge can be bi-directional, connecting Fred and Bob as ‘FRIEND’. Graph databases, such as Neo4j, make the query of ‘Who are Fred’s friends?’ extremely efficient and easy.
Neo4j performs these basic graph functions extremely fast on even the largest of datasets, and the current work on Neo4j is focused on increasing availability and sharding options for Neo4j. Based in Java, Neo4j also has a wide range of supported languages thanks in part to the growing community of Neo4j users. The built-in REST client also allows easy implementation for almost any language you choose to use. Check out Neo4j’s Getting Started page to check out examples in Java, Python, or Ruby.
Be sure to add to the conversation. Share your thoughts and experiences with Neo4j in the comments below!