Understanding high availability and cluster installation in neo4j

I am quite curious about high availability in neo4j.
Till now i have worked on single node cluster installation but in case if i want to utilize cluster capabilities and maintain high availability then what should be the way ?
if somehow my server goes down on cluster how to manage it

Yes there is clustering availability to provide redundancy in case of environmental failures and load balancing to scale up if you need it.

How it works ?
could you please give me a example of that ?

There are two types of clustering in Neo4j: High Availability Clustering and Causal Clustering. Causal Clustering is recommended for most clients and is more adaptable to an organization's changing needs.

Both types of clustering maintain the complete database on every server, regardless of their role. In other words Neo4j does not do 'sharding'.

The documentation for Causal Clustering is very good. This link may be the last stop you will need in your quest:
https://neo4j.com/docs/operations-manual/current/clustering/introduction/

1 Like

Hi Joe,
I have just researched about the High Availability Clustering and Causal Clustering, as the docs, HA will be remove in 4.0 version (I am using 3.5 now) and I also want to apply CC for my servers. I wonder how I can set up Causal Clustering if I have only 2 servers. My purpose is just setup a second server for HA, this one will be replicated all data/transactions from the first one. It seem to be like Master - Slave model...
Thank a lot
Harvey Nguyen

Hello Harvey,

The answer is yes.

You can have just two servers in your Causal Cluster. With Causal Cluster you must have two groups of server present: a read-write group and a read-only group. In your case you would have only one member per group. So yes, having two servers in a Causal Cluster will allow you to scale horizontally--higher availability--for database reads.

However you will not achieve a full fault-tolerance with that. If one of the two servers fails--either one--the remaining server will remain read-only, or become read-only. It's the only safety measure left, given there would be no other server to rely on.

The best part is that you can add a third server at any time to get full fault tolerance.

1 Like

Hi @mojo2go,
I set up with your suggestion and I plan to set up 1 Core and 1 Read-replica. However, I face a error:

Bad value '1' for setting 'causal_clustering.minimum_core_cluster_size_at_formation': minimum allowed value is: 2

How can I set up as your suggest

With Causal Cluster you must have two groups of server present: a read-write group and a read-only group. In your case you would have only one member per group

Thanks for you help!