Neo4j
Neo4j is an open source graph database that stores data as nodes and relationships and queries it with Cypher — a self-hostable alternative to managed graph services like Amazon Neptune for social graphs, recommendations, fraud detection, and knowledge graphs.
What is Neo4j?
Neo4j is a graph database that stores data as nodes and the relationships between them, rather than in rows and tables. You query it with Cypher, a declarative language built to express connected patterns — “find friends of friends who bought this” — far more naturally than SQL joins. It’s a native graph store with full ACID transactions, and the Community Edition is open source under GPLv3.
What is Neo4j best for?
Neo4j is best for problems where the connections between data matter as much as the data itself: recommendation engines, fraud and anomaly detection, social networks, knowledge graphs, network and IT topology, and identity/access graphs. It shines when queries traverse many hops between entities — exactly the workload that makes relational joins slow and awkward.
What can Neo4j do?
- Model data as a property graph — nodes, typed relationships, and key-value properties on both
- Query with Cypher, its declarative pattern-matching language (also standardized as GQL / openCypher)
- Run fully ACID-compliant transactions with a mature, durable storage engine
- Run graph algorithms (PageRank, community detection, pathfinding, similarity) via the Graph Data Science library
- Explore and visualize graphs interactively in Neo4j Browser and Bloom
- Connect from most languages through official drivers (Java, Python, JavaScript, Go, .NET) over the Bolt protocol
- Scale out with clustering, multi-database support, and role-based security in the Enterprise Edition
Is Neo4j free?
Partly. The Community Edition is free and open source (GPLv3) and you can self-host it at no cost — it’s a fully featured single-instance graph database. The features most production teams eventually need — clustering, hot backups, multi-database, fine-grained access control, and unlimited Graph Data Science parallelization — live in the paid Enterprise Edition. The managed AuraDB cloud has a free tier for learning, with paid Professional plans starting around $65/GB per month.
Where does Neo4j fall short?
- The open source edition is deliberately limited. Community Edition has no clustering, no hot backups, no role-based access control, and no multi-database support — Neo4j reserves those for the commercial Enterprise Edition, so scaling or securing a production deployment on the free tier alone is hard.
- It’s a property-graph store only. Unlike Amazon Neptune, Neo4j doesn’t natively handle RDF/SPARQL semantic-web graphs, so it’s a poor fit if you specifically need triple-store or linked-data standards.
- It runs on the JVM and is memory-hungry. Neo4j is a Java application that wants generous heap and page-cache RAM to perform well on large graphs; it’s more resource-intensive to tune than a lightweight embedded store, and overkill if your data is small or naturally tabular.
What does Neo4j replace?
Neo4j is a self-hostable alternative to managed and proprietary graph databases: Amazon Neptune (AWS’s managed graph service), the graph API of Azure Cosmos DB, and TigerGraph. It does the same connected-data job — storing and traversing graphs — while letting you run it on your own infrastructure or across any cloud instead of a single vendor’s.
FAQ
Is Neo4j open source? The Community Edition is, licensed under GPLv3. The Enterprise Edition adds proprietary, closed-source components (clustering, backups, security) and requires a commercial license.
Can I self-host Neo4j for free? Yes. The Community Edition is free to download and self-host with no license fee — you only pay for the server it runs on. You’d move to Enterprise or AuraDB when you need clustering, backups, or advanced security.
Is Neo4j a good Amazon Neptune alternative? For property-graph workloads, yes — Neo4j runs on any cloud or on-premises and uses the widely adopted Cypher language, whereas Neptune is AWS-only. Neptune wins if you’re already all-in on AWS or need RDF/SPARQL support.
What do I need to run Neo4j? A machine with a modern JVM (recent OpenJDK) and enough RAM for the heap and page cache; official Docker images make setup straightforward. Larger graphs need proportionally more memory to stay fast.