About ReefDB

ReefDB was born from the desire to build a graph database that was good at storing graph data, rather than storing data in a graph. There's a lot of data that is structured as a graph (the abstract syntax tree of a source code file, the data used to construct a flamegraph, a distributed trace, etc.) and it's natural to think that a graph database would be ideal for storing that data; but, graph databases all to often fall apart when trying to use them to store a lot of small graphs. This is because, the graph database isn't mean to store _graphs_ it's meant to store the same type of data you store in a RDBMS (tuples) but the data is stored in a graph rather than a table. This means that graph databases are great at traversing connections between one data point and another, but when you have a thousand graphs and you want to aggregate them together and find how frequently a specific edge occurs in those graphs, Graph DBs start to fall apart.

ReefDB is designed to fulfill that need and it does this by focusing not on replacing the table with a graph but on replacing the _tuple_ with a graph. In this regard, it is closer to a RDBMS than a traditional graph DB: as it stores records in a table but, unlike an RDBMS, each record is a small graph, rather than a tuple of values.