private long numUnrecorded() {
        return votersInState(State.UNRECORDED).count();
    }
The lifetime of a candidate state is the following.

 1. Once started, it would keep record of the received votes.
 2. If majority votes granted, it can then end its life and will be replaced by a leader state;
 3. If majority votes rejected or election timed out, it would transit into a backing off phase;
    after the backoff phase completes, it would end its left and be replaced by a new candidate state with bumped retry.
raft/src/main/java/org/apache/kafka/raft/CandidateState.java