Causal Cluster

This section describes breaking changes for the Neo4j cluster discovery and REST API endpoints.

Cluster discovery

Cluster discovery is implemented on top of Akka (https://akka.io/), instead of Hazelcast (https://hazelcast.com/). A few minor changes have been made as part of this transition:

  • The discovery_advertised_address hostname and port must exactly match those configured for the discovery of other members.

    When discovery_type=LIST is used, the list of addresses in initial_discovery_members must match the respective advertised addresses of each server.

    When using any other discovery types (DNS, SRV, K8S), the configuration in the external service must match.

    By default, your discovery_advertised_address is a combination of the default port assigned to that configuration and the hostname assigned to default_advertised_address.

    For more information on cluster discovery, see ink:https://neo4j.com/docs/operations-manual/4.0/clustering/discovery/[Operations Manual v4.0 → Discovery]

  • Connections are now opened from Cores to Read Replicas, in addition to vice versa. Therefore, the advertised discovery port must be open on Read Replicas.

Cluster REST endpoints

The REST endpoints are per database instead of per instance:

Old endpoint New endpoint

/db/manage/server/causalclustering/writable

/db/<databasename>/cluster/writable

/db/manage/server/causalclustering/read-only

/db/<databasename>/cluster/read-only

/db/manage/server/causalclustering/available

/db/<databasename>/cluster/available

/db/manage/server/causalclustering/status

/db/<databasename>/cluster/status