I just finished the raft paper and am beginning work on an implementation. However, I realized I am a bit confused on one crucial detail. How do raft nodes “know” about their peers? I didn’t see any mention of this in the paper so I assume it is implementation specific but in my mind, it leads to a number of questions:
- Is the size of a raft cluster static? Since each node must know about every other peer (in order to send RPCs), how would a new node join an existing cluster? How would the existing nodes learn about this new node?
- Must each node’s network location be hardcoded into every other node at initialization? How does a node know where to send its RPCs?
Would greatly appreciate some help with this. I am really interested in understanding raft completely and am excited to be implement it but I am a bit lost on this part of the system architecture. It doesn’t seem right to me that the nodes should be statically configured with hardcoded network locations since in the real world, I could definitely envision needing to add a new node into an existing cluster. Thanks!
question from:https://stackoverflow.com/questions/65914261/how-do-raft-nodes-learn-about-peers