Record Class Registration

java.lang.Object
java.lang.Record
io.krabka.streams.coordination.Registration
Record Components:
member - the member that registered
registeredAt - the time the member registered, in milliseconds since the Unix epoch
All Implemented Interfaces:
CoordinationValue

public record Registration(MemberId member, long registeredAt) extends Record implements CoordinationValue
One member of a role announces that it is available.

A member writes a registration when it joins, and it writes a tombstone on the same key when it leaves. The record carries no authority. A candidate holds no epoch when it announces itself, and it must take no epoch to do so, so the append sits outside a transaction.

The offset that the broker assigns to the record is the join sequence of the member. Log compaction keeps the offset of every record it retains, so the succession rules rank candidates on that offset. See RoleState.

Example

Registration joined = new Registration(MemberId.of("node-1"), clock.nowMillis());
byte[] value = CoordinationCodec.encodeValue(joined);
  • Constructor Details

    • Registration

      public Registration(MemberId member, long registeredAt)
      Rejects a null member.
      Parameters:
      member - the member that registered
      registeredAt - the time the member registered, in milliseconds since the Unix epoch
  • Method Details

    • kind

      public RecordKind kind()
      Returns the kind of the key that a registration sits under.
      Specified by:
      kind in interface CoordinationValue
      Returns:
      RecordKind.REGISTRATION
    • 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. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      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.
    • member

      public MemberId member()
      Returns the value of the member record component.
      Specified by:
      member in interface CoordinationValue
      Returns:
      the value of the member record component
    • registeredAt

      public long registeredAt()
      Returns the value of the registeredAt record component.
      Returns:
      the value of the registeredAt record component