In a causal cluster, there can be two categories of servers. Core servers are the most important over read replica servers, as replicas are disposable and can be either added or removed during the scaling of the cluster. Let's go through their roles.
Core servers are the most important servers of a cluster. The minimum number of core servers in a cluster is three for a transaction is reported as successful to the user who started it when the update generated is propagated to half the size of the cluster plus 1.
The roles of core servers are as follows:
- They are the targets of all the updating queries; they uphold data consistency via the consensus commit
- They are responsible for data safety
- They do the query routing, along with the bolt protocol drivers
- They copy data to read replicas (when polled)
Although this is transparent for the users, the admins know that, in a cluster, one server is the leader and is elected by the other core servers.