Neo4j
The best-known native graph database: nodes and relationships stored as linked records, queried with Cypher, self-hosted or as AuraDB.
- What it is
- Graph databases
- Type
- Open source
- Made by
- Neo4j, Inc.
- License
- GPLv3 (Community Edition); Enterprise Edition and AuraDB are proprietary, and Enterprise source has been closed since 3.5 (November 2018)
- Facts checked
- 6 October 2026
What it is
Neo4j is a Java server that stores a property graph: nodes with labels, typed and directed relationships, and properties on both. Its own store files keep each node pointing at its list of relationships, so a query hops from node to neighbour without an index lookup, which Neo4j calls index-free adjacency. Transactions are ACID. Applications send Cypher, Neo4j’s pattern language and a major input to the ISO GQL standard, over the binary Bolt protocol (port 7687) using official drivers, or use the Browser on port 7474. Indexes find the starting nodes, including full-text indexes and HNSW vector indexes for similarity search over embeddings, often combined with traversals for GraphRAG. The Graph Data Science (GDS) library adds parallel graph algorithms such as PageRank, community detection, path finding and node embeddings, run as Cypher procedures on an in-memory projection of the graph.
Community Edition is GPLv3 and runs as a single instance with one user database. Enterprise Edition is commercial and adds clustering (each database has primaries, which keep accepting writes while a majority is up, plus read-only secondaries), online backup, multiple databases, role-based access control, change data capture and the faster block store format; sharding of a single database arrived in late 2025 for the Infinigraph edition only. AuraDB is the managed service on AWS, Azure and Google Cloud, billed per GB of provisioned memory per hour: as of 6 October 2026, Professional starts at $0.09 per GB-hour (minimum 1 GB) and Business Critical at $0.20 (minimum 2 GB), with storage, IO, network and backups included. AuraDB Free costs nothing but caps node and relationship counts.
Why teams pick it
- Native graph storage: multi-hop queries touch only the nodes and relationships they visit, regardless of total graph size
- Cypher is mature, readable and converging on ISO GQL, with drivers for .NET, Go, Java, JavaScript and Python
- Vector, full-text and graph queries in one database, all available in Community Edition
- Graph Data Science library for algorithms such as PageRank and community detection, and AuraDB on all three big clouds with a free tier
Watch out for
- Community Edition has no clustering, online backup, role-based access control or multiple databases; production high availability means buying Enterprise or AuraDB
- Enterprise source has been closed since 2018, and Community is GPLv3 copyleft; Neo4j won a lawsuit against a company that stripped restrictions from its earlier Enterprise licence
- Writes to one database go through its primaries; splitting a single database across machines is new and limited to the Infinigraph edition
- AuraDB bills provisioned memory every hour it runs; a paused instance still costs 20% of the running rate, and a Free instance pauses after 72 idle hours and is deleted after 30 days paused
- Community Edition’s aligned store format caps a graph at about 34 billion nodes and relationships; the higher-limit block format is Enterprise-only
Alternatives
What all graph databases have in common →How it fits with other technologies
Run Community Edition in Docker, load a tiny graph and query two hops out · bash
docker run -d --name neo4j \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/secret-password \
-v neo4j-data:/data \
neo4j:2026.09-community
# once it has started (docker logs -f neo4j), run Cypher through cypher-shell
docker exec -i neo4j cypher-shell -u neo4j -p secret-password <<'EOF'
CREATE (a:Person {name: 'Ada'})-[:KNOWS]->(b:Person {name: 'Bo'})-[:KNOWS]->(c:Person {name: 'Cy'}),
(c)-[:BOUGHT]->(:Product {sku: 'A-17'});
MATCH (me:Person {name: 'Ada'})-[:KNOWS*2]->(fof:Person)-[:BOUGHT]->(p:Product)
RETURN fof.name AS friend_of_friend, p.sku AS bought;
CREATE VECTOR INDEX product_embeddings IF NOT EXISTS
FOR (p:Product) ON p.embedding
OPTIONS {indexConfig: {`vector.dimensions`: 1536, `vector.similarity_function`: 'cosine'}};
EOFCommunity and Enterprise#
Both editions run the same Cypher on the same native graph engine. The differences are in availability, security, operations and scale. AuraDB runs Enterprise features as a service.
| Feature | Community Edition | Enterprise Edition |
|---|---|---|
| Licence | GPLv3, free | Commercial; free developer licence via Neo4j Desktop |
| Clustering and automatic failover | No | Yes |
| Online backup and restore | No (offline dump only) | Yes |
| Databases per server | One, plus system | Many, plus composite databases |
| Role-, property- and subgraph-based access control, LDAP | No | Yes |
| Store format | Aligned (about 34 billion nodes and relationships) | Block (default, highest limits) |
| Cypher runtimes | Slotted | Slotted, pipelined and parallel |
| Vector and full-text indexes | Yes | Yes |
| Change data capture | No | Yes |
| Graph Data Science | GDS Community Edition | GDS Enterprise Edition (separate licence key) |
- From the edition comparison in the Neo4j Operations Manual (2026.09). Sharded property databases (new in 2025.12) need the Infinigraph edition.
AuraDB tiers#
List prices from neo4j.com/pricing, checked 6 October 2026. You pay for provisioned memory per hour; at 730 hours a month, $0.09 per GB-hour is about $66 per GB of memory.
AuraDB Free
$0One instance per account, with caps on node and relationship counts. Pauses automatically after 72 hours without activity and is deleted if it stays paused for 30 days.
AuraDB Professional
from $0.09/GB-hourMinimum 1 GB, up to 128 GB of memory, single zone, daily backups kept 7 days. Instances can be paused at 80% off.
AuraDB Business Critical
from $0.20/GB-hourMinimum 2 GB, up to 512 GB on AWS and Azure or 2 TB on Google Cloud. Multi-zone with a 99.95% SLA, multiple databases, read-only secondaries, change data capture, 30-day backups with point-in-time restore.
AuraDB Virtual Dedicated Cloud
contact salesBusiness Critical features on dedicated, VPC-isolated infrastructure, with hourly backups kept 60 days.
See it in a real stack
No architecture uses Neo4j yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2000–2024
Around 2000, Emil Eifrem, Johan Svensson and Peter Neubauer were building a content management system in Sweden and kept running into the performance limits of relational databases for connected data. They built a graph engine instead, ran it in production around the clock from 2003, and in 2007 formed Neo Technology and released Neo4j under the GPL. Version 1.0 followed in 2010, and the company moved its headquarters to Silicon Valley in 2011.
Cypher, Neo4j’s pattern language, dates from 2010. In 2015 Neo4j opened it as openCypher, backed by Oracle, Databricks and others, and Neo4j engineers later spent about five years on the ISO committee that published GQL in 2024.
Licensing caused the most friction. Enterprise Edition had been released under the AGPL; for 3.4 Neo4j added the Commons Clause, and from 3.5 in November 2018 it stopped publishing Enterprise source altogether. PureThink and its founder John Mark Suhy removed the Commons Clause and kept offering the code. A federal court found the defendants liable under trademark law and the DMCA and in July 2024 awarded Neo4j $597,000 plus a permanent injunction; the defendants appealed to the Ninth Circuit.
Why it’s built this way
- Native graph storage instead of a layer over tables
- The founders started Neo4j because relational databases were too slow for their connected data, so relationships are stored records that a query follows directly.
- A query language modelled on SQL
- Cypher followed a “no idle variance from SQL” principle, adding ASCII-art patterns only where graphs needed them. That made it a natural input to GQL.
- Open core: GPL Community, commercial Enterprise
- Neo4j said in 2018 that it wanted to stop confusion about which parts of its code it sells and which it gives away, so Enterprise became commercial-only while Community stayed GPLv3.
Timeline
- 2000
The founders build a first graph prototype after hitting relational limits
- 2007
Neo Technology is formed in Sweden; Neo4j is released under the GPL
- 2010
Neo4j 1.0 is released
- 2015
Cypher opens up as openCypher
- 2018
Enterprise Edition goes closed source from 3.5; Neo4j sues PureThink
- 2019
AuraDB, the managed cloud service, launches
- 2024
ISO publishes GQL; the court awards Neo4j $597,000 against PureThink
- Neo4j: company history (prototype in 2000, GPL release in 2007, 1.0 in 2010, AuraDB in 2019)
- Wikipedia: Neo4j, on the founders and the content management system origin
- Neo4j blog: Meet openCypher, the open source SQL for graphs (Oct 2015)
- Neo4j blog: ISO GQL, a defining moment in database innovation (Apr 2024)
- Neo4j blog: Shifting to an open core licensing model for Enterprise Edition (Nov 2018)
- Neo4j v. PureThink, N.D. Cal. 5:18-cv-07182: Findings of fact and conclusions of law (Jul 2024)
- CourtListener: Neo4j, Inc. v. Suhy, Ninth Circuit No. 24-5538 (appeal docket)
- Software Freedom Conservancy: amicus brief in the Neo4j appeal (Jan 2025)
Sources17 · facts checked 6 October 2026
- Neo4j Operations Manual: introduction and edition comparison
- Neo4j Operations Manual: store formats
- Neo4j Operations Manual: clustering introduction (primaries, secondaries, majority)
- Neo4j blog: Native vs. non-native graph technology (index-free adjacency)
- Neo4j Cypher Manual: vector indexes (HNSW)
- Neo4j Graph Data Science: introduction and algorithms
- Neo4j Graph Data Science: Enterprise Edition licence key
- Neo4j pricing (AuraDB tiers and list prices)
- Neo4j Aura docs: instance actions (pausing, Free instance deletion)
- Neo4j Aura docs: create an instance (one Free instance per account)
- Neo4j Operations Manual: Docker introduction (ports, `NEO4J_AUTH`, `/data`)
- Neo4j Operations Manual: Docker operations (`cypher-shell`)
- Neo4j Operations Manual: Kubernetes and Helm charts
- Neo4j Connector for Kafka docs
- Neo4j Connector for Apache Spark docs
- Neo4j Graph Analytics for Snowflake: getting started (a Native App from the Snowflake Marketplace)
- neo4j/neo4j on GitHub (GPL-3.0)