# `Raft`：Key Concepts
+ `Leader` election
  + Select a node to become `leader` by voting
  + When crash / network isolation happens, elect a new `leader`
+ Log replication
  + `Leader` is responsible for receving requests and appending logs locally
  + `Leader` replicates logs to other nodes (and overwrites inconsistent logs)
+ Restrictions
  + `Leader` is voted by more than half of the nodes
  + Logs needs to be replicated to more than half of the nodes
  + The node holding the latest log can be elected
------------------------------------------------------------
`Leader` election is the core functionality of `Raft`, this makes `Raft` different from `Semi-Sync` replication.

`Raft` members switch roles between candidate, `leader` and `follower`.

The log replication must be done by the most of the members.

