Record Class ConsensusState

java.lang.Object
java.lang.Record
org.j7m.middleware.api.consensus.ConsensusState
Record Components:
nodeId - node id represented by this snapshot
role - node role observed when the snapshot was built
term - current durable term
votedFor - voted-for candidate in the current term, if any
leaderId - observed leader id, if any
commitIndex - highest log index known to be committed
lastApplied - highest log index applied to the local state machine
lastLogIndex - highest log index present in the local log
logEntries - redacted log entry status metadata, ordered by log index
All Implemented Interfaces:
Serializable

public record ConsensusState(ConsensusNodeId nodeId, ConsensusRole role, ConsensusTerm term, ConsensusNodeId votedFor, ConsensusNodeId leaderId, CommitIndex commitIndex, LogIndex lastApplied, LogIndex lastLogIndex, List<ConsensusLogEntryStatus> logEntries) extends Record implements Serializable
Immutable, redacted consensus node state snapshot.

The snapshot is a status value, not a live node object. It is safe to publish through operator status endpoints because log entries are represented by ConsensusLogEntryStatus metadata rather than full replicated commands. Implementations create this value from local durable state and must preserve the identity and ordering semantics of indexes and terms. The record is immutable and thread-safe after construction.

See Also:
  • Constructor Details

  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • nodeId

      public ConsensusNodeId nodeId()
      Returns the value of the nodeId record component.
      Returns:
      the value of the nodeId record component
    • role

      public ConsensusRole role()
      Returns the value of the role record component.
      Returns:
      the value of the role record component
    • term

      public ConsensusTerm term()
      Returns the value of the term record component.
      Returns:
      the value of the term record component
    • votedFor

      public ConsensusNodeId votedFor()
      Returns the value of the votedFor record component.
      Returns:
      the value of the votedFor record component
    • leaderId

      public ConsensusNodeId leaderId()
      Returns the value of the leaderId record component.
      Returns:
      the value of the leaderId record component
    • commitIndex

      public CommitIndex commitIndex()
      Returns the value of the commitIndex record component.
      Returns:
      the value of the commitIndex record component
    • lastApplied

      public LogIndex lastApplied()
      Returns the value of the lastApplied record component.
      Returns:
      the value of the lastApplied record component
    • lastLogIndex

      public LogIndex lastLogIndex()
      Returns the value of the lastLogIndex record component.
      Returns:
      the value of the lastLogIndex record component
    • logEntries

      public List<ConsensusLogEntryStatus> logEntries()
      Returns the value of the logEntries record component.
      Returns:
      the value of the logEntries record component