Neo4j Overview - Features and Operating Environments
Neo4j overview
Neo4j is a database management system (DBMS) for graph-structured data models1 and is classified as a graph database2.
Neo4j is one of the most widely used graph databases. Development began in 2000 to address RDBMS performance limitations. The first version appeared in 2002, the project became open source in 2007, and version 1.0 was released in 2010. Neo4j is implemented in Java.
Its schema-free data structure, ease of development, and ACID transactions have drawn worldwide attention as an architecture well suited to graph data. Neo4j has also received industry recognition, including selection for InfoWorld’s 2014 Technology of the Year Award.
Key Neo4j features
- Strong transactions
- Neo4j supports ACID-compliant transactions—atomicity, consistency, isolation, and durability—to protect data integrity.
- Flexible schema
- Neo4j uses the property graph model, allowing data to be modeled in a natural form.
- High-performance traversal
- Index-free adjacency enables fast traversal while maintaining predictable performance regardless of graph volume or complexity.
- Query language
- Neo4j uses Cypher, a declarative graph query language that is intuitive and often requires less code than SQL.
- Support for major languages and frameworks
- Official drivers support Java, C#, Python, and JavaScript. The community also supports frameworks such as Spring Data, Django ORM, Laravel, and JDBC.
- Cloud support
- Neo4j runs on AWS, Microsoft Azure, and Google Cloud Platform. An official Docker image simplifies deployment.
- Multiple databases
- Neo4j 4.0 and later support multiple databases per cluster.
- Reactive architecture
- Neo4j 4.0 introduced a reactive architecture to improve responsiveness, elasticity, and resilience.
Comparison with relational databases
| Relational database | Neo4j | |
|---|---|---|
| Data storage | Data is divided into tables with predefined rows and columns, which can reduce query efficiency for connected data. | A graph storage structure with index-free adjacency accelerates transaction and relationship processing. |
| Data model | The logical model must be converted into a physical model. Types and sources must be known in advance, making changes expensive. | The logical and physical models align and remain flexible. Types and sources can be added or changed at any time. |
| Query performance | Performance is affected by the number and depth of joins or relationships. | Graph traversal offers low latency regardless of relationship count and depth. |
| Query language | SQL becomes more complex as joins increase. | Cypher provides an expressive way to describe relationship queries. |
| Transaction support | Supports ACID transactions. | Supports ACID transactions. |
| Data center efficiency | Server consolidation is possible, but scale-up and scale-out can be expensive. | Data and relationships are stored together, enabling efficient server consolidation and hardware use as complexity grows. |
Neo4j use cases
- Stronger security
- Traditional unauthorized-access detection examines individual data points such as accounts, IP addresses, and devices. Neo4j can analyze relationships among these points and detect patterns missed by conventional methods.
- Enhanced search
- Graph-based search can show related information without requiring users to enter additional keywords.
Neo4j operating environment
The following requirements apply to Neo4j 4.x.
Supported platforms
Neo4j supports x86_64 systems on physical, virtual, and container platforms.
Hardware
For personal use and software development:
| Category | Specification |
|---|---|
| CPU | Intel Core i3 minimum; Core i7 recommended |
| Memory | 2 GB minimum; 16 GB or more recommended |
| Storage | 10 GB SATA minimum; an SSD with SATA Express or NVMe recommended |
For cloud environments:
| Category | Specification |
|---|---|
| CPU | 2 vCPUs minimum; 16 or more recommended, preferably Xeon |
| Memory | 2 GB minimum; actual requirements depend on workload and graph size |
| Storage | 10 GB block storage minimum; NVMe SSD recommended; size depends on database size |
For on-premises servers:
| Category | Specification |
|---|---|
| CPU | Intel Xeon processor |
| Memory | 8 GB minimum; actual requirements depend on workload and graph size |
| Storage | SATA 7.2K RPM 6 Gbps minimum; NVMe SSD recommended; size depends on database size |
Software
A compatible Java Virtual Machine (JVM) is required. Neo4j 3.x requires Java 8, while Neo4j 4.x requires Java 11.
For personal use and software development:
| Operating system | Version | Supported JDK |
|---|---|---|
| macOS | 10.14 or later | ZuluJDK 11 |
| Ubuntu Desktop | 16.04 or later | OpenJDK 11, OracleJDK 11, ZuluJDK 11 |
| Debian | 9 or later | OpenJDK 11, OracleJDK 11, ZuluJDK 11 |
| SUSE | 15 or later | OracleJDK 11 |
| Windows | 10 | OracleJDK 11, ZuluJDK 11 |
For cloud environments:
| Operating system | Supported JDK |
|---|---|
| Ubuntu Server 16.04 or later | OpenJDK 11, OracleJDK 11, ZuluJDK 11 |
| Red Hat Enterprise Linux Server 7.5 or later | Red Hat OpenJDK 11, OracleJDK 11, ZuluJDK 11 |
| CentOS Server 7.7 | OpenJDK 11 |
| Amazon Linux 2 AMI | Amazon Corretto 11, OpenJDK 11, OracleJDK 11 |
| Windows Server 2016 or later | OracleJDK 11, ZuluJDK 11 |
Neo4j license
Neo4j Community Edition is licensed under the GNU General Public License (GPLv3.0), which permits copying, distribution, source disclosure, and modification under its terms.
Neo4j resources
-
A graph-structured data model consists of the smallest units, called nodes, and the relationships between them. ↩︎
-
A graph database is a type of NoSQL database based on graph theory. Unlike relational databases, which store data in tables, it processes data through complex relationships. It typically does not require a fixed schema, can manage node properties in complex hierarchies, and supports expressive queries and graphical tools. ↩︎