affinity
affinity copied to clipboard
Consider getting rid of zookeeper as a coordinator
The purpose of the coordinator is to allow nodes to come online and offline dynamically. This is achieved by the following 3 functions:
- inform about nodes coming online/offline and mediate their addresses to each other
- generate assignment for each keyspace based on required replication factor and a state of previous assignment (to move as few partitions as possible)
- elect leaders for online replicas of the same partition
this could be done by a combination of gossip/raft and single-partition kafka topic