Neo4j

Last updated
Neo4j
Developer(s) Neo4j Inc.
Initial release2007;17 years ago (2007) [1]
Stable release
5.25.1 [2]   OOjs UI icon edit-ltr-progressive.svg / 31 October 2024;0 days ago (31 October 2024)
Repository
Written in Java
Type Graph database
License
Website neo4j.com

Neo4j is a graph database management system (GDBMS) developed by Neo4j Inc.

Contents

The data elements Neo4j stores are nodes, edges connecting them, and attributes of nodes and edges. Described by its developers as an ACID-compliant transactional database with native graph storage and processing, [3] Neo4j is available in a non-open-source "community edition" licensed with a modification of the GNU General Public License, with online backup and high availability extensions licensed under a closed-source commercial license. [4] Neo also licenses Neo4j with these extensions under closed-source commercial terms. [5]

Neo4j is implemented in Java and accessible from software written in other languages using the Cypher query language through a transactional HTTP endpoint, or through the binary "Bolt" protocol. [6] [7] [8] [9] The "4j" in Neo4j is a reference to its being built in Java, however is now largely viewed as an anachronism. [10]

History

Neo4j is developed by Neo4j, Inc., based in San Mateo, California, United States and Malmö, Sweden.

Version 1.0 was released in February 2010. [11]

Neo4j version 2.0 was released in December 2013. [12]

Neo4j version 3.0 was released in April 2016. [13]

In November 2016, Neo4j successfully secured $36M in Series D Funding led by Greenbridge Partners Ltd. [14]

In November 2018, Neo4j successfully secured $80M in Series E Funding led by One Peak Partners and Morgan Stanley Expansion Capital, with participation from other investors including Creandum, Eight Roads and Greenbridge Partners. [15]

In June 2021, Neo4j announced another round of funding, $325M in Series F. [16]

Release history

Release history
ReleaseFirst release [17] Latest

minor version [18]

Latest release [18] End of
Support Date [17]
1.02010-02-23Old version, no longer maintained: 1.02011-08-23
1.12010-07-30Old version, no longer maintained: 1.12012-01-30
1.22010-12-29Old version, no longer maintained: 1.22012-06-29
1.32011-04-12Old version, no longer maintained: 1.32012-09-12
1.42011-07-08Old version, no longer maintained: 1.42013-01-08
1.52011-11-09Old version, no longer maintained: 1.52013-03-09
1.62012-01-22Old version, no longer maintained: 1.62013-07-22
1.72012-04-18Old version, no longer maintained: 1.72013-10-18
1.82012-09-28Old version, no longer maintained: 1.82014-03-28
1.92013-05-21Old version, no longer maintained: 1.9.92014-10-132014-11-21
2.02013-12-11Old version, no longer maintained: 2.0.42014-07-082015-06-11
2.12014-05-29Old version, no longer maintained: 2.1.82015-04-012015-11-29
2.22015-03-25Old version, no longer maintained: 2.2.102016-06-162016-09-25
2.32015-10-21Old version, no longer maintained: 2.3.122017-12-122017-04-21
3.02016-04-16Old version, no longer maintained: 3.0.122017-10-032017-10-31
3.12016-12-13Old version, no longer maintained: 3.1.92018-06-052018-06-13
3.22017-05-11Old version, no longer maintained: 3.2.142019-02-262018-11-31
3.32017-10-24Old version, no longer maintained: 3.3.92018-11-022019-04-28
3.42018-05-17Old version, no longer maintained: 3.4.172019-11-192020-03-31
3.52018-11-29Old version, no longer maintained: 3.5.352022-08-112022-05-27
4.02020-01-15Old version, no longer maintained: 4.0.122021-07-062021-07-14
4.12020-06-23Old version, no longer maintained: 4.1.122022-08-112021-12-22
4.22020-11-17Old version, no longer maintained: 4.2.192022-08-112022-05-16
4.32021-06-17Old version, no longer maintained: 4.3.232022-12-212022-12-16
4.42021-12-02Old version, yet still maintained: 4.4.382024-10-082025-06-30
5.02022-10-06Old version, no longer maintained: 5.02022-10-24
5.12022-10-24Old version, no longer maintained: 5.1Release of 5.2
5.22022-11-21Old version, no longer maintained: 5.2Release of 5.3
5.32022-12-15Old version, no longer maintained: 5.3Release of 5.4
5.42023-01-26Old version, no longer maintained: 5.4Release of 5.5
5.52023-02-16Old version, no longer maintained: 5.5Release of 5.6
5.62023-03-24Old version, no longer maintained: 5.6Release of 5.7
5.72023-04-20Old version, no longer maintained: 5.7Release of 5.8
5.82023-05-16Old version, no longer maintained: 5.8Release of 5.9
5.92023-06-15Old version, no longer maintained: 5.9Release of 5.10
5.102023-07-19Old version, no longer maintained: 5.10Release of 5.11
5.112023-08-15Old version, no longer maintained: 5.11Release of 5.12
5.122023-09-14Old version, no longer maintained: 5.12Release of 5.13
5.132023-10-23Old version, no longer maintained: 5.13Release of 5.14
5.142023-11-24Old version, no longer maintained: 5.14Release of 5.15
5.152023-12-15Old version, no longer maintained: 5.15Release of 5.16
5.162024-01-22Old version, no longer maintained: 5.16Release of 5.17
5.172024-02-23Old version, no longer maintained: 5.17Release of 5.18
5.182024-03-13Old version, no longer maintained: 5.18.12024-03-18Release of 5.19
5.192024-04-12Old version, no longer maintained: 5.19Release of 5.20
5.202024-05-23Old version, no longer maintained: 5.20Release of 5.21
5.212024-06-28Old version, no longer maintained: 5.21.22024-07-09Release of 5.22
5.22.02024-07-25Old version, no longer maintained: 5.22.0Release of 5.23
5.232024-08-22Old version, no longer maintained: 5.23Release of 5.24
5.242024-09-27Old version, no longer maintained: 5.24.22024-10-15Release of 5.25
5.25.12024-10-31Current stable version:5.25.1
Legend:
Old version, not maintained
Old version, still maintained
Latest version
Latest preview version
Future release

Licensing and editions

Neo4j comes in five editions. Two are on-premises editions, Community (free) and Enterprise, and three are cloud-only editions: AuraDB Free, AuraDB Professional, and AuraDB Enterprise.

It is dual-licensed: GPL v3 (with parts of the code under AGPLv3 with Commons Clause), and a proprietary license. The Community Edition is free but is limited to running on one node only due to the lack of clustering and is without hot backups. [19]

The Enterprise Edition unlocks these limitations, allowing for clustering, hot backups, and monitoring. The Enterprise Edition is available under a closed-source commercial license.

The licensing is controversial and has been the subject of at least one lawsuit. [20]

Data structure

The data elements are nodes, edges which connect nodes to one another, and attributes of nodes and edges. Nodes and edges can be labelled. Labels can be used to narrow searches. As of version 2.0, indexing was added to Cypher with the introduction of schemas. [21] Previously, indexes were supported separately from Cypher. [22]

Criticisms

Database researcher Andy Pavlo from Carnegie Mellon University has questioned graph databases' decision to abandon the longstanding relational model in favor of a custom model. [23] Researchers from CWI benchmarked a modified version of DuckDB against Neo4j on graph-related workloads and found that, despite being an extension of a relational database running SQL, their implementation outperforms Neo4j in a few specific tasks. [24]

Neo4j sued PureThink, a small business that had used a power created under the terms of the GNU AGPL, to remove a restrictive Commons clause that Neo4j had added to the AGPL license. [20] [25] The United States District Court for the Northern District of California made a decision on 2024-07-22 to impose $597,000 in actual damages on PureThink, having previously decided that PureThink had violated the DMCA by removing the Commons Clause from Neo4j's AGPL license, and that it had violated trademark law by continuing to use the name Neo4j in selling to government agencies. [26]

See also

Related Research Articles

Berkeley DB (BDB) is an embedded database software library for key/value data, historically significant in open-source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitrary key/data pairs as byte arrays and supports multiple data items for a single key. Berkeley DB is not a relational database, although it has database features including database transactions, multiversion concurrency control and write-ahead logging. BDB runs on a wide variety of operating systems, including most Unix-like and Windows systems, and real-time operating systems.

<span class="mw-page-title-main">Ingres (database)</span> Database software

Ingres Database is a proprietary SQL relational database management system intended to support large commercial and government applications.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB2 until 2017, when it changed to its present form.

A query language, also known as data query language or database query language (DQL), is a computer language used to make queries in databases and information systems. In database systems, query languages rely on strict theory to retrieve information. A well known example is the Structured Query Language (SQL).

A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.

<span class="mw-page-title-main">GNU Affero General Public License</span> Free software license based on the AGPLv1 and GPLv3

The GNU Affero General Public License is a free, copyleft license published by the Free Software Foundation in November 2007, and based on the GNU GPL version 3 and the Affero General Public License (non-GNU).

A graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the graph. The graph relates the data items in the store to a collection of nodes and edges, the edges representing the relationships between the nodes. The relationships allow data in the store to be linked together directly and, in many cases, retrieved with one operation. Graph databases hold the relationships between data as a priority. Querying relationships is fast because they are perpetually stored in the database. Relationships can be intuitively visualized using graph databases, making them useful for heavily inter-connected data.

Volt Active Data is an in-memory database designed by Michael Stonebraker, Sam Madden, and Daniel Abadi.

<span class="mw-page-title-main">Open-core model</span> Business model monetizing commercial open-source software

The open-core model is a business model for the monetization of commercially produced open-source software. The open-core model primarily involves offering a "core" or feature-limited version of a software product as free and open-source software, while offering "commercial" versions or add-ons as proprietary software. The term was coined by Andrew Lampitt in 2008.

<span class="mw-page-title-main">Sones GraphDB</span>

Sones GraphDB was a graph database developed by the German company sones GmbH, available from 2010 to 2012. Its last version was released in May 2011. sones GmbH, which was based in Erfurt and Leipzig, was declared bankrupt on January 1, 2012.

A cloud database is a database that typically runs on a cloud computing platform and access to the database is provided as-a-service. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service, maintained by a cloud database provider. Of the databases available on the cloud, some are SQL-based and some use a NoSQL data model.

<span class="mw-page-title-main">Oracle NoSQL Database</span> Distributed database

Oracle NoSQL Database is a NoSQL-type distributed key-value database from Oracle Corporation. It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring.

Cypher is a declarative graph query language that allows for expressive and efficient data querying in a property graph.

Lightning Memory-Mapped Database (LMDB) is an embedded transactional database in the form of a key-value store. LMDB is written in C with API bindings for several programming languages. LMDB stores arbitrary key/data pairs as byte arrays, has a range-based search capability, supports multiple data items for a single key and has a special mode for appending records (MDB_APPEND) without checking for consistency. LMDB is not a relational database, it is strictly a key-value store like Berkeley DB and DBM.

<span class="mw-page-title-main">DBeaver</span> Multi-platform database administration software

DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. It is written in Java and based on the Eclipse platform.

Realm is an open source object database management system, initially for mobile operating systems (Android/iOS) but also available for platforms such as Xamarin, React Native, and others, including desktop applications (Windows). It is licensed under the Apache License.

<span class="mw-page-title-main">Grafana</span> Platform for data analytics and monitoring

Grafana is a multi-platform open source analytics and interactive visualization web application. It can produce charts, graphs, and alerts for the web when connected to supported data sources.

GQL is a standardized query language for property graphs first described in ISO/IEC 76120, released in April 2024 by ISO/IEC.

<span class="mw-page-title-main">YugabyteDB</span> Transactional distributed SQL database

YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte.

RavenDB is an open-source document-oriented database written in C#, developed by Hibernating Rhinos Ltd. It is cross-platform, supported on Windows, Linux, and Mac OS. RavenDB stores data as JSON documents and can be deployed in distributed clusters with master-master replication.

References

  1. Neubauer, Peter [@peterneubauer] (17 Feb 2010). "@sarkkine #Neo4j was developed as part of a CMS SaaS 2000-2007, became released OSS 2007 when Neo Technology spun out" (Tweet) via Twitter.
  2. https://neo4j.com/release-notes/database/neo4j-5/.{{cite web}}: Missing or empty |title= (help)
  3. Neo Technology. "Neo4j Graph Database" . Retrieved 2015-11-04.
  4. Philip Rathle (November 15, 2018). "Simplicity Wins: We're Shifting to an Open Core Licensing Model for Neo4j Enterprise Edition" . Retrieved 2019-01-16.
  5. Emil Eifrem (April 13, 2011). "Graph Databases, Licensing and MySQL". Archived from the original on 2011-04-26. Retrieved 2011-04-29.
  6. "Bolt Protocol".
  7. Todd Hoff (June 13, 2009). "Neo4j - a Graph Database that Kicks Buttox". High Scalability. Possibility Outpost. Retrieved 2010-02-17.
  8. Gavin Terrill (June 5, 2008). "Neo4j - an Embedded, Network Database". InfoQ. C4Media Inc. Retrieved 2010-02-17.
  9. "5.1. Transactional Cypher HTTP endpoint" . Retrieved 2015-11-04.
  10. Dr. Jim Webber (June 8, 2020). "A Personal History of Neo4j". Neo4j. YouTube. Retrieved 2022-06-09.
  11. "The top 10 ways to get to know Neo4j". Neo4j Blog. February 16, 2010. Retrieved 2010-02-17.
  12. "Neo4j 2.0 GA - Graphs for Everyone". Neo4j Blog. December 11, 2013. Retrieved 2014-01-10.
  13. "Neo4j 3.0.0 - Neo4j Graph Database Platform". Release Date. April 26, 2016. Retrieved 2020-04-23.
  14. "Neo Technology closes $36 million in funding as graph database adoption soars". SiliconANGLE. Retrieved 2016-11-21.
  15. "Graph database platform Neo4j locks in $80 mln Series E". PE Hub Wire. Archived from the original on 2019-04-26. Retrieved 2018-11-01.
  16. "Neo4j Series F funding".
  17. 1 2 "Neo4j Supported Versions". Neo4j Graph Database Platform. Retrieved 2024-10-31.
  18. 1 2 "Release Notes Archive". Neo4j Graph Database Platform. Retrieved 2024-10-31.
  19. "The Neo4j Editions".
  20. 1 2 Kuhn, Bradley M. (March 30, 2022). "An Erroneous Preliminary Injunction Granted in Neo4j v. PureThink" . Retrieved 2024-09-14.
  21. "The Neo4j Manual v2.1.5".
  22. "The Neo4j Manual v1.8.3".
  23. Pavlo, Andy (2023-03-08). "Abandoning relational DB model like 'reinventing the wheel'". The Register . Retrieved 2024-02-21.
  24. D.L.J, Daniël; Singh, Tavneet; Szárnyas, Gábor; Boncz, Peter (2023-01-08). "DuckPGQ: Efficient property graph queries in an analytical RDBMS". Centrum Wiskunde & Informatica. Retrieved 2024-02-21.
  25. "SFC's Policy Fellow Files Expert Report in Neo4j v. PureThink; Case about the "further restrictions" removal provision of the AGPLv3 continues after counterclaim filing". February 9, 2023. Retrieved 2024-09-14.
  26. "NEO4J, INC., et al., Plaintiffs, v. PURETHINK, LLC, et al., Defendants.: Findings of Fact and Conclusions of Law" (PDF). 2024-07-22. Retrieved 2024-09-14.