C.4. Advanced settings reference

This section lists the advanced settings related to running a Neo4j Causal Cluster.

Parameter Explanation


Enables multi-data center features. Requires appropriate licensing.

Example: causal_clustering.multi_dc_license=true will enable the multi-data center features.


A list of group names for the server used when configuring load balancing and replication policies.

Example: causal_clustering.server_groups=us,us-east will add the current instance to the groups us and us-east.


An ordered list in descending preference of the strategy which Read Replicas use to choose upstream database server from which to pull transactional updates.

Example: causal_clustering.upstream_selection_strategy=connect-randomly-within-server-group,typically-connect-to-random-read-replica will configure the behavior so that the Read Replica will first try to connect to any other instance in the group(s) specified in causal_clustering.server_groups. Should we fail to find any live instances in those groups, then we will connect to a random Read Replica. A value of user_defined will enable custom strategy definitions using the setting causal_clustering.user_defined_upstream_strategy.


Defines the configuration of upstream dependencies. Can only be used if causal_clustering.upstream_selection_strategy is set to user_defined.

Example: causal_clustering.user_defined_upstream_strategy=groups(north2); groups(north); halt() will look for servers in the north2. If none are available it will look in the north server group. Finally, if we cannot resolve any servers in any of the previous groups, then rule chain will be stopped via halt().


The load balancing plugin to use. One pre-defined plugin named server_policies is available by default.

Example: causal_clustering.load_balancing.plugin=server_policies will enable custom policy definitions.


Defines a custom policy under the name <policy-name>. Note that load balancing policies are cluster-global configurations and should be defined the exact same way on all core machines.

Example: causal_clustering.load_balancing.config.server_policies.north1_only=groups(north1)→min(2); halt(); will define a load balancing policy named north1_only. Queries are only sent to servers in the north1 server group, provided there are two of them available. If there are less than two servers in north1 then the chain is halted.