Chang and Roberts algorithm

The Chang and Roberts algorithm[1] is a ring-based coordinator election algorithm, employed in distributed computing.

Assuming there are no failures this algorithm will finish.

"Participant" and "not participant" states are used so that when multiple processes start an election at roughly the same time, only a single winner will be announced.

When there's a single process starting the election, the algorithm requires 3N-1 sequential messages, in the worst case.

Fault tolerance can be increased If every process knows the whole topology, by introducing ACK messages and skipping faulty nodes on sending messages.