Martin Fowler
Partitions need to be mapped to cluster nodes. The mapping also needs to be stored and made accessible to the clients. It’s common to use a dedicated Consistent Core; this handles both. The dedicated Consistent Core acts as a coordinator which keeps track of all nodes in the cluster and maps partitions to nodes. It also stores the mapping in a fault tolerant way by using a Replicated Log. The master cluster in YugabyteDB or controller implementation in Kafka are both good examples of this.
Peer-to-peer systems like Akka or Hazelcast also need a particular cluster node to act as an coordinator. They use Emergent Leader as the coordinator.
Systems like [kubernetes] use a generic Consistent Core like [etcd]. They need to elect one of the cluster nodes to play the role of coordinator as discussed here.
Tracking Cluster Membership
Each cluster node will
To read the full article click on the 'post' link at the top.