Goodbye SDN⚡️RX

Gerrit Meier
Neo4j Developer Blog
3 min readJun 30, 2020

Welcome Spring Data Neo4j 6.0

Last Thursday our friends of the Spring Data team at VMWare Tanzu released the first milestone of the upcoming release train Ockham (2020.0.0). As you have might seen there were not a lot public facing changes to Spring Data Neo4j in it. But there is something big coming to Ockham.

Photo by Mark Autumns on Unsplash

Remember our posts about SDN/RX?

Welcome SDN⚡️RX
Reactive multi-tenancy with Neo4j 4.0 and SDN/RX
Spring Data Neo4j RX released into the wild

We have been working on this new Spring Data Neo4j module for over a year now and after 10 releases, including 4 stable ones, we think it’s time for SDN/RX to replace SDN+Neo4j-OGM in the next big release train of the Spring Data modules. While we dubbed SDN/RX always RX, it has never been about reactive only, but also supports all the same features for the imperative programming model.

Let’s start moving

Behind the scenes we started to plan the steps forward for migrating Spring Data Neo4j RX to the Spring Data family. Together with the Spring Data team we decided that the best way is to see SDN/RX as the natural successor of SDN. Given the current schedule for the Ockham release train, we aim for the milestone 2 release around mid August.

Transparency

It is important for us to communicate the upcoming changes in a timely matter.
The least amount of changes will be required for SDN/RX users themselves. You will have to change the Maven or Gradle coordinates and, most likely, the namespaces of the driver configuration. If you, however, are an existing SDN+Neo4j-OGM user, there will more work involved migrating your existing project.

To get familiar with those migration related topics, we prepared a migration guide in our documentation. This will get updated more and more over the time when we release the M2.

What will change?

Besides the obvious move of the project itself, we would like to outline the changes that come with the move to Spring Data.

  1. We will extract the OpenCypherDSL, that is right now a module of SDN/RX but already has its own maven coordinates, as a project on its own.
  2. The Spring Boot starter and auto-config will be the update for the existing Spring Data Neo4j starter in Spring Boot.
  3. The Spring Boot auto-config for the Neo4j Java Driver will also find its place in the Spring Boot project.
  4. The examples will be part of the Spring Data examples.

When will it get released?

Please keep in mind that this is our roadmap for roughly the next four months and a lot can change during this time. If everything works out as expected, Spring Data Neo4j 6.0 will get released with Ockham by the end of October.

This also means that it will get picked up as the Spring Data Neo4j in Spring Boot 2.4 and onwards.

What is the impact for me now?

Until the official release of the milestone 2 version, we will keep the Spring Data Neo4j RX project active on GitHub. So issues, feature requests, and similar can be posted there. We will migrate open ones after this milestone release to the Spring Data Jira and set the project to archived state.

If we encounter a serious problem in SDN/RX, we will, of course, release another bugfix release, but feature-based releases are planned to continue with the official Spring Data versions in the future.

Thanks to you all

We know that this move, depending on your current setup, will require changes to your code base. Thanks to all the users of Spring Data Neo4j as it is today and our new user base of Spring Data Neo4j RX for providing us with a lot of valuable feedback.

We want to make the move as smooth as possible and we aimed for the earliest possibility to bring SDN/RX into the Spring Data modules. There shouldn’t be a SDN/Neo4j-OGM and SDN/RX release living in parallel for too long to avoid confusions about the versions used and their feature sets.

If you have any questions, reach out to us on our community site. We are so happy and thrilled to move Spring Data Neo4j to the next level with you. ♥️

--

--