Thanks for the additional context regarding AlterIsrResponse. Jason wrote: > In regard to the naming of `IsLeaderRecovering`, I agree it still seems a > bit awkward. I kind of liked the idea of turning it into a `PartitionState` > field instead. That would also address the inconsistent type in the > `PartitionChangeRecord`.
Okay. The current KIP only supports two election recovery states because the type used is a boolean. I am going to extend it to use an int8 and support the following states: 1. ELECTION_RECOVERY - Notify to the leader that it should recover the local log. It indicates to the followers that the leader is recovering. 2. ELECTION_RECOVERED - Notify to the leader that recovery is not needed. It indicates to the follower that the leader has recovered. In the current KIP is the partition state invariant is "!InElectionRecovery || size(ISR) == 1". With the above change the invariant will be "ElectionState == ELECTION_RECOVERED || size(ISR) == 1". Thanks! -José