In recent years the database scene has been boiling. New databases for special purposes seem to emerge every day and for a good reason. Data processing needs have become more and more specialized and with scale you often need to store your data in a way that reflects its structure in order to support proper queries. The default of storing everything in a relational database is often not the right solution. Graphs, which are a superset of trees and hierarchies are a very natural way to represent many real world concepts.
Facebook and its social graph brought it to center stage, but graphs, trees and hierarchies were always important. It is possible to model graphs pretty easily with a relational database because a graph is really just vertices connected by edges, that map very well to the entity-relational model. But, performance is a different story at scale and with deep hierarchies.
Many graph databases exist today with different levels of maturity. One of the most interesting developments in this domain is the TinkerPop?Apache incubator project, which is a graph computing framework with active industry contribution. Checkout the getting started tutorial here?to get familiarized with the terrain.
Other interesting projects include DataStax (Cassandra) acquiring TitanDB and incorporating it and of course Facebook’s GraphQL. And, there is always Neo4J?that has a mature enterprise-ready solution and an impressive list of customers.
The exciting part is how to combine graph databases with other data systems and how to construct viable data intensive systems that scale well to address new data challenges such as the coming of the IoT era where sensors will generate unprecedented amounts of data.