No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Neo4j Reactive Java Client

neo4j reactive java client License Apache%202.0 green


The Reactive Java Client requires Java 11 higher. Goto JDK 11 General-Availability Release for binaries for you operating systems. The Reactive Streams Java Driver does not work with an embedded version of Neo4j but needs an instance that can be addressed over the Bolt protocol.

The test infrastructure is based on Testcontainers which in turn depend on Docker. Docker must be installed on your machine to run the integration tests.


The main idea is to keep as close to the official Neo4j Java Driver as possible.

  • Not introduce new kind of result sets

  • Creating pendants to the drivers Session#run() methods that takes in a Cypher statement and parameters, publishing instances of org.neo4j.driver.v1.Record

  • Facilitating the asynchronous API of the driver as much as possible

  • So far handling back pressure in the reactive Neo4jClient as such that it just stops requesting new records and relying on the fact that the Driver than stops fetching them

The reactive Neo4jClient should only expose Reactive Streams interfaces. In the long run, those will be superseded by Javas Flow classes. The reactive Neo4jClient internally uses Project Reactor.

Validation against the Reactive Streams TCK

The Reactive Streams initiative offers a TCK. This TCK is meant to guide and help Reactive Streams library implementers to validate their implementations against the Reactive Streams specification. The Publisher returned by the Neo4jClient are validated against the TCK in org.neo4j.reactiveclient.Neo4jClientVerificationTest. We validate all required and optional rules.


The examples subproject provides several examples using several implementations of Reactive Streams to get you started. Checkout the "Hello, Worlds" using plain Reactive Streams, Project Reactor and RxJava 2 Types:



APIs marked with the `@Deprecated annotation at the class or method level will remain supported until the next major release but it is recommended to stop using them.


Michael Simons

Gerrit Meier