Graph databases
Databases whose first-class citizen is the relationship: storage and traversal are native (pointer-chasing between nodes) instead of join-storms in a relational engine. The mental model that separates them from “SQL with a graph table”: traversal cost is proportional to what you match, not to what exists — the property that makes multi-hop queries (“all services transitively affected by this node”) cheap and makes graphs the natural shape for dependency/influence/knowledge structures. Where Working with legacy code has dependency graphs as a reading tool, graph databases make them a storage engine.
The LPG/RDF split underneath: Labeled Property Graphs (Cypher/GQL family) vs RDF triples (SPARQL, semantic-web lineage) — most operational systems are LPG; the ISO GQL standard (2024) is the convergence play, the first new ISO graph query language since SQL.
The field (all captured)
- neo4j (OSS) (17.3k★, Java, GPL-3.0 community edition) — the incumbent: “Graphs for Everyone”, Cypher’s birthplace, the ecosystem default (tooling, drivers, training, GraphRAG examples). The reference everyone else is compatible with.
- memgraph (OSS) (4.6k★, C++, BSL→source-available) — the in-memory Cypher engine, positioned exactly where RedisGraph died: real-time analytics, now repositioned for GraphRAG / AI memory / agentic AI. Cypher-compatible = Neo4j query portability without the JVM.
- dgraph (OSS) (21.8k★, Go, Apache-2.0, now Hypermode) — the GraphQL-native distributed graph DB: horizontally scalable, its own DQL, born from the Badajoz/Syncbase lineage (Google’s Spanner-influenced founders). The “distributed-first” answer; post-acquisition direction is AI/Vector-infrastructure-adjacent (Badwolf, ristretto are its OSS children).
- FalkorDB (OSS) (6.7k★, C, source-available) — the RedisGraph successor: the same team’s next act — GraphBLAS sparse-adjacency-matrix math under the hood, runs as a Redis module, explicitly “best Knowledge Graph for LLM (GraphRAG)”. Lightest operational footprint of the server options.
- Grafeo (grafeo.dev, captured →
clippings/grafeo-dev.md) — the Rust embeddable: vectorized execution, adaptive chunking, SIMD; embedded and server modes; claims fastest in its LDBC-inspired graph-bench with lower memory than other in-memory DBs. The polyglot outlier: GQL, Cypher, Gremlin, GraphQL, SPARQL and SQL/PGQ; dual LPG+RDF models; built-in HNSW vector search with quantization. The “all the standards, one binary” bet — same slot PGlite occupies for Postgres (pglite (OSS)), but for graphs.
The RedisGraph lesson
RedisGraph — development and support ended January 31, 2025; removed from Redis Stack after 7.2.x-y. The aftermath is instructive: the demand it proved (graphs in-memory, next to your cache) didn’t die — it migrated to successors. FalkorDB is the direct continuation (same sparse-matrix approach, Redis-module deployment model); Memgraph absorbed the standalone-in-memory positioning; Redis Ltd itself now points GraphRAG users elsewhere. The pattern: a proprietary-platform-embedded OSS project’s EOL redistributes its users to platform-independent engines. (Same caution template as any Redis-Stack-module dependency — pin your module version and have a successor named.)
Why now: GraphRAG
The current growth driver is LLM context: naive vector RAG loses multi-hop relationships; GraphRAG (extract entities/relations into a graph, retrieve by traversal, augment with vectors) restores them. Every player above now pitches it — Memgraph’s whole repositioning, FalkorDB’s explicit mission, Neo4j’s examples, Grafeo’s built-in vectors. Kinship: Agent knowledge systems (the garden/graph convergence), Small Vision Language Models GLiNER2 entity-extraction is literally the extraction half of a GraphRAG pipeline.
Related: Embedded databases (the family portrait this belongs to) · pglite (OSS) (the embedded-DB kin) · Agent knowledge systems (GraphRAG convergence) · High Availability (the distributed-first vs single-node axis)