Nodes connected by edges, both with properties. Traversals follow relationships in constant time per hop — no joins, no foreign-key gymnastics. The right tool when the answer to a question is "walk the network."
← Back to Database SideThe category leader. Property graph, Cypher query language (now an open standard, GQL). Excellent visualization, mature operations.
Managed graph on AWS. Speaks both Gremlin (property graph) and SPARQL (RDF). Pairs well with the rest of the AWS data stack.
Multi-model — documents, graph, and key-value in one engine. Useful when you don't want to operate two databases.
Performance-focused; in-memory or analytics-grade traversal speed for fraud, supply chain, real-time scoring.
Distributed graph. JanusGraph rides on Cassandra/HBase; Dgraph is its own thing with GraphQL native.
Postgres extension that adds Cypher to a relational DB. Hedge bet — graph queries without leaving Postgres.
"Friends of friends." "Customers who share a device with a flagged account." "Products bought by people who bought this product." In SQL, each hop is a self-join — three hops is already painful, six is impossible. In a graph DB, each hop is O(neighbors), and you can express the whole thing in one Cypher pattern.
Detect rings: shared addresses, devices, payment instruments, IPs. The fraud pattern is a subgraph — graph DBs match it directly with pattern queries. A SQL system would precompute features; a graph can ask the question live.
"People like you also liked X." Walk from the user, through purchases, to other users, to their purchases — score by overlap. Knowledge graphs (entities, relations, types) power assistants, search, and increasingly, RAG context for LLMs.
"Does user U have permission P on resource R?" through groups, roles, and inherited grants. Google's Zanzibar model is a graph at heart. SpiceDB, OpenFGA — graph-shaped under the hood.
Telecom topology, logistics routes, dependency graphs, infrastructure blast radius. Shortest path, centrality, community detection — algorithms that run natively on the graph instead of being shoehorned through SQL.
ASCII-art pattern matching: (user)-[:FRIEND]->(friend)-[:FRIEND]->(fof). Reads close to how you'd draw it on a whiteboard. Cypher started at Neo4j; GQL is the ISO standard descendant.
Functional traversal language: g.V(user).out('friend').out('friend'). Imperative-feeling, more flexible but harder to read. The native language of the Apache TinkerPop ecosystem.
For RDF / triple stores. Subject-predicate-object queries against a knowledge graph. Wikidata, DBpedia, biomedical ontologies — that world.
Common confusion: GraphQL is an API query language; graph databases store and traverse graphs. They're orthogonal. You can serve GraphQL from a relational DB, and many do.