Neo4j is a graph database that, in its own documentation, “stores data as nodes, relationships, and properties instead of in tables or documents.” A node is an entity tagged with labels and carrying key-value properties; a relationship is a named, directed connection between two nodes that can also hold properties. Because connections are stored natively rather than computed at query time, the system can follow links between records without the expensive join operations a relational database would need for the same traversal.
This makes Neo4j well suited to problems that are fundamentally about relationships: social networks, recommendation engines, and fraud detection, where the question is less “what is this record” and more “how is this record connected to others.” The documentation highlights adoption across financial services, government, retail, and manufacturing, all domains where following chains of connections quickly is valuable.
Neo4j introduced Cypher, described in the docs as “Neo4j’s declarative and GQL conformant query language.” Cypher uses an ASCII-art syntax that draws the graph pattern you want to match, so a statement like Sally likes Graphs can be written as a node, an arrow labeled with a relationship type, and another node. Unlike SQL, where relationships are implied through foreign keys, Cypher treats relationships as first-class citizens of the query language.
According to Neo4j’s company timeline, the Swedish company behind Neo4j was formed in 2007 and open sourced the first graph database under the GPL, with prototype work tracing back several years earlier to performance problems the founders hit with relational systems.