Expand description
§Raft state machine
(Figure 4 from Raft paper)
Starting state = [Follower]
===========================
******************* ┌───────────┐ **************
* Times out, * │ ┼──>* Times out, *
* starts election *─────────>│ Candidate │ * tries new *
* * │ │<──* election *
******************* └─┬───────┬─┘ **************
^ v │
┌────┴─────┐ ********************* │
│ Follower │<──* Discovers current * │
└──────────┘ * leader or * │
^ * new term * │
│ ********************* v
│ ******************
******************** ┌────────┐ * Receives votes *
* Discovers server *<───┼ Leader │<───* from majority *
* with higher term * └────────┘ * of nodes *
******************** ******************