Skip to content

Versions

Michael Simons edited this page Nov 11, 2020 · 31 revisions

Neo4j-OGM is used in a wide variety of ecosystems, but most specifically inside the wider Spring ecosystem. Neo4j-OGM does the main work for Spring Data Neo4j (SDN), so SDN is dependent on it. At the same time, SDN is also dependent on the Spring Framework. Spring Boot is dependent on both Spring Framework and Spring Data Commons and SDN.

This gives a lot of potential to mix versions that don't work well together or not at all. Hence this overview which combinations we recommend for the Bolt (aka Server) transport mode:

Recommended versions

Neo4j-OGM Spring Data Neo4j Spring Boot Neo4j Java Driver Neo4j
3.2.18 5.3.x (Neumann) 2.3.x >=4.0.0 3.5.x, 4.0, 4.1
3.2.18 5.2.x (Moore) 2.2.x >=4.0.0 3.5.x, 4.0, 4.1
3.1.22 5.1.x (Lovelace) 2.1.x 1.7.x 3.4.x
3.0.x2 5.0.x (Kay) 2.0.x 1.6.x 3.3.x

Using the Neo4j Java Driver Spring Boot starter

We offer the neo4j-java-driver-spring-boot-starter. This Spring Boot module offers all the properties of the Java / Bolt driver and exposes an instance of the driver as a bean explicitly, without enforcing OGM onto your application. It is however compatible with OGM.

You might combine the following versions:

neo4j-java-driver-spring-boot-starter Spring Boot Neo4j Java Driver Neo4j-OGM
4.1.1.x 2.3.x >=4.1.1 >=3.2.3
4.0.3.x 2.3.x >=4.0.1 >=3.2.3
4.0.1.x 2.2.x >=4.0.1 >=3.2.3
4.0.0.x 2.2.x >=4.0.0 >=3.2.3
1.7.5.1 2.1.x 1.7.x 3.1.x

The starter offers integration with Spring Boot health for both 1.7.x and 4.0.0 drivers and Micrometer integration for 4.0.0 drivers.

All supported versions

Those are all supported combinations:

Neo4j-OGM Spring Data Neo4j Spring Boot Neo4j Java Driver Neo4j
3.2.x 5.3.x (Neumann) 2.3.x >=4.0.0 3.3.x, 3.4.x, 3.5.x, 4.0, 4.11
3.2.x 5.2.x (Moore) 2.2.x >=4.0.0 3.3.x, 3.4.x, 3.5.x, 4.0, 4.11
3.1.x 5.1.x (Lovelace) 2.1.x 1.6.x, 1.7.x 3.2.x, 3.3.x, 3.4.x, 3.5.x
3.0.x2 5.0.x (Kay) 2.0.x 1.5.x, 1.6.x 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x
2.1.x3 4.2.x (Ingalls) 1.5.x 1.2.3 2.3.x4, 3.0.x, 3.1.x
2.0.x3 4.1.x (Hopper) 1.4.x 1.0.6 2.3.x4, 3.0.x
  • 1 Only with 4.1 Neo4j Java Driver
  • 2 No longer actively developed.
  • 3 No longer actively developed or supported.
  • 4 Embedded

Please note that we do test and support actually more combinations, especially of Neo4j-OGM, the Bolt driver and the database itself.

OGM 3.2.x is API compatible with Spring Data Neo4j 5.1 (Lovelace) and can serve as a drop in by setting <neo4j-ogm.version>3.2.x</version.properties> in the build description of your Spring Boot application

The case of Neo4j-OGM embedded

IMPORTANT: Starting Neo4j embedded from OGM and using embedded API is only supported up and including to Neo4j 3.5. If you need an embedded 4.0 database in your application, create it as a standard bean and open up a local bolt socket connection using our Neo4j Java Driver against it.

Neo4j-OGM offers the embedded mode and starts an embedded instance for you. This is comfortable during development and also in deployment. But bare in mind that you bind yourself with the database version very closely not only to your Object graph mapping framework, but also to your application framework. For example, if you started a Spring Boot application based on OGM embedded 2.1.x and database 3.1, you cannot simply exchange the database dependencies or OGM dependencies to go to something higher than database 3.1, as the mentioned components are inter dependend.

If you really want to run an embedded database in production, you should consider providing the database bean yourself and explicitly open the embedded databases bolt port and use the OGM bolt transport.

Spring, Spring Boot and Spring Data versions

Not supported or maintained by us but relevant to our users as well, the general Spring Framework support matrix:

https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions#supported-versions

and the corresponding Spring Boot matrix:

https://github.com/spring-projects/spring-boot/wiki/Supported-Versions

Also for your convenience, the release trains of all Spring Data projects:

https://github.com/spring-projects/spring-data-commons/wiki

Clone this wiki locally