Connecting to a pre-4.x causal cluster from a 4.x javascript driver


Is it possible to connect to a pre-4.x causal cluster with a 4.x javascript driver?

At the moment we are using the bolt+routing:// scheme to connect to our cluster from the client, and we are in the process of trying to upgrade both the client and server, starting with the client. As far as I can tell the bolt+routing:// scheme is not supported with the 4.x client, and I haven't been able to verify that the neo4j:// scheme will work with the pre-4.x cluster.

Does anyone know if this is possible? Is there a different approach that we could explore?


Yes, you should be able to use the 4.0 drivers to connect to 3.5.x Neo4j clusters. I believe that both 'bolt+routing' or 'neo4j' would work here, the routing logic is in the driver/client not the server.

1 Like

Thank you very much! This got us most of the way there.

In our case, we also needed to use the +s or +ssc variants of the scheme in order to make the connection work when switching to driver version 4.x, as self-signed certificates were the default in 1.x and apparently what we had been using.

While trying different things we found that neo4j:// worked on both 1.x and 4.x versions of the driver to connect to our 3.x cluster, but because the +s and +sc variants did not work on the old driver version we had to update both the scheme and driver at the same time.

:memo: Documentation for how these URIs work

So in summary:

  1. bolt+routing:// does not work with the 4.x driver
  2. bolt:// works fine locally for testing in both cases
  3. neo4j:// works for both 1.x and 4.x versions of the driver, but on 4.x it does not let you connect to a 3.x cluster because it does not use a secure connection by default any more. It is possible we have configured the cluster to behave this way, and I just don't remember
  4. neo4j+s:// and neo4j+ssc:// only works with the 4.x driver. neo4j+ssc:// will behave in the way the default bolt+routing:// and neo4j:// connection did in driver version 1.x