Introduction
This section provides a brief overview of the Neo4j editions, versioning, Cypher language, interaction, and capabilities.
Neo4j is the world’s leading graph database. The architecture is designed for optimal management, storage, and traversal of nodes and relationships. The graph database takes a property graph approach, which is beneficial for both traversal performance and operations runtime. Neo4j offers dedicated memory management and memory-efficient operations.
Neo4j is scalable and can be deployed as a standalone server or across multiple machines in a fault-tolerant cluster for production environments. Other features for production applications include hot backups and extensive monitoring.
There are two editions of Neo4j to choose from, the Community Edition and the Enterprise Edition. The Enterprise Edition includes all that Community Edition has to offer, plus extra enterprise requirements such as backups, clustering, and failover capabilities.
1. Community Edition
The Community Edition is a fully functional edition of Neo4j, suitable for single-instance deployments. It has full support for key Neo4j features, such as, ACID-compliant transactions, Cypher, and programming APIs. It is ideal for learning Neo4j, do-it-yourself projects, and applications in small workgroups.
2. Enterprise Edition
The Enterprise Edition extends the functionality of Community Edition to include key features for performance and scalability, such as, a clustering architecture and online backup functionality. Additional security features include role-based access control and LDAP support, for example, Active Directory. It is the choice for production systems with requirements for scale and availability, such as, commercial solutions and critical internal solutions.
3. Versioning
Neo4j uses semantic versioning (Semantic Versioning Specification 2.0.0).
Given a version number MAJOR.MINOR.PATCH
, the increment is based on:
-
MAJOR
version - incompatible API changes towards previousMAJOR
version. -
MINOR
version - functionality in a backwards compatible manner. -
PATCH
release - backwards compatible bug fixes.
Neo4j’s fully managed cloud service Neo4j Aura uses only MAJOR
versioning.
4. Cypher
Cypher is a declarative query language for graphs. Neo4j uses the property graph approach, where relationships are stored alongside the data in the model, and not computed at query time. Cypher is a powerful, graph-optimized query language that understands, and takes advantage of, these stored connections. When trying to find patterns or insights in data, Cypher queries are often much simpler and easier to write than massive SQL JOINs. Since Neo4j does not have tables, there are no JOINs to worry about.
For more details, see the Cypher Manual → Cypher - The Graph Query Language.
5. Interaction
The recommended way of programmatically interacting with the database is either through the official Neo4j Drivers, or through using the Java Reference → Neo4j Java API. Neo4j provides an ACID-compliant transactional backend for your applications.
5.1. The official Neo4j Drivers
The official Neo4j Drivers interacts with Neo4j via the Bolt protocol (https://neo4j-drivers.github.io/).
-
For Spring-powered applications there is also Spring Data Neo4j.
See the Neo4j Download Center - Drivers for more links. |
5.2. Other tools
-
Neo4j Cypher Shell - Command line tool for Cypher queries. Neo4j Download Center - Cypher Shell.
-
Neo4j Browser - Interact with Neo4j, create Cypher queries, and basic visualization capabilities.
-
Neo4j Desktop - Developer IDE or Management Environment for Neo4j instances. Neo4j Download Center - Neo4j Desktop.
-
Neo4j Bloom - Explore and visualize graph data. Neo4j Download Center - Neo4j Bloom.
6. Neo4j feature details
6.1. Neo4j key features
Feature | Community Edition | Enterprise Edition |
---|---|---|
Property graph model |
||
Native graph processing & storage |
||
ACID-compliant transactions |
||
Cypher graph query language |
||
Neo4j Browser with syntax highlighting |
||
Bolt Protocol |
||
Language drivers for C#, Go, Java, JavaScript & Python [1] |
||
High-performance native API |
||
High-performance caching |
||
Cost-based query optimizer |
||
Graph algorithms to support AI initiatives [1] |
||
Fast writes via native label indexes |
||
Composite indexes |
||
Full-text node & relationship indexes |
||
Store copy |
||
Auto-reuse of space |
||
Multiple databases (beyond the |
||
Slotted and Pipelined Cypher runtimes |
||
Property-existence constraints |
||
Node Key constraints |
||
Listing and terminating running queries |
||
Role-based access control |
||
Sub-graph access control |
||
LDAP and Active Directory integration |
||
Kerberos security option |
||
1. Must be downloaded and installed separately. |
6.2. Performance and scalability
Feature | Community Edition | Enterprise Edition |
---|---|---|
Causal Clustering for global scale applications |
||
Enterprise lock manager accesses all cores on server |
||
Intra-cluster encryption |
||
Offline backups |
||
Online backups |
||
Encrypted backups |
||
Rolling upgrades |
||
Automatic cache warming |
||
Routing and load balancing with Neo4j Drivers |
||
Advanced monitoring |
||
Graph size limitations |
34 billion nodes, 34 billion relationships, and 68 billion properties |
No limit |
Bulk import tool |
||
Bulk import tool, resumable |
Was this page helpful?