Enum Class RaftState

java.lang.Object
java.lang.Enum<RaftState>
com.loomcache.server.consensus.RaftState
All Implemented Interfaces:
Serializable, Comparable<RaftState>, Constable

public enum RaftState extends Enum<RaftState>
The possible states a Raft node can be in.

Transitions:

  • LEARNER ──(promoted via config change)──> FOLLOWER
  • FOLLOWER ──(election timeout)──> CANDIDATE
  • CANDIDATE ──(wins majority)──> LEADER
  • CANDIDATE ──(discovers higher term)──> FOLLOWER
  • LEADER ──(discovers higher term)──> FOLLOWER

Learners receive log replication from the leader but do NOT:

  • Participate in elections (cannot become CANDIDATE)
  • Count toward quorum decisions (commitIndex advancement)

Learners are used for:

  • Safe cluster scaling (add learner first, then promote to voter)
  • Read replicas (serve stale reads from learners)
  • Observation nodes (monitoring without affecting consensus)
Since:
1.0
See Also:
  • Enum Constant Details

    • LEARNER

      public static final RaftState LEARNER
    • FOLLOWER

      public static final RaftState FOLLOWER
    • CANDIDATE

      public static final RaftState CANDIDATE
    • LEADER

      public static final RaftState LEADER
  • Method Details

    • values

      public static RaftState[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static RaftState valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null