# Flow Control
+ `Leader` maintains progress for each `follower`
  + matched index: last index reported by `follower`
  + next index: log at whitch is about to be sent to the `follower`
+ Progress can be in two states
  + Probe: at most 1 log during a heartbeat time
  + Replicate: send until window is full
    + window size: [matched, min(last_index, matched + window_size)]

![`smart`](RaftFlowControl_aa_001_20221023.png)
------------------------------------------------------------

