Raft


이해하기 어려운 기존의 알고리즘과 달리 쉽게 이해하고 구현하기 위해 설계
Raft의 node는 Follower, Candidate, Leader라는 3가지 state
모든 노드는 처음에 Follower state를 가지고 시작
Follower가 Leader의 응답을 받지 못하면 Candidate 상태로 전환될 수
Candidate는 다른 노드들에게 투표를 요청하고 노드들은 투표 결과를 응답으로 전달
노드 중 가장 많은 표를 얻은 노드는 Leader가 될 수
이러한 프로세스를 Leader Election

[Leader Election](https://texonom.com/leader-election-d86ec46f5dd44e5e949a07e11e1eab3b)


[Append Entries](https://texonom.com/append-entries-65e63be83a20497a9dc80ef24b0e9b69)


[Log Replication](https://texonom.com/log-replication-3c8d65f63b994eeaa013ed8d8e1359e8)

Leader가 선정되고 난 이후, 시스템의 모든 변화는 Leader를 통해 이루
클라이언트는 Leader에게 데이터를 전달하고, Leader는 데이터의 복제하여 Follower에게 전달합니다. 이 과정은 앞서 언급했던 Append Entries 메세지
활한 Leader Election을 위해 클러스터 노드의 개수는 홀수로 구성하는 것이 좋습다

> [Raft consensus algorithm](https://swalloow.github.io/raft-consensus/)





