Record Class OutboxEntry

java.lang.Object
java.lang.Record
org.j7m.middleware.api.messaging.OutboxEntry
Record Components:
entryId - outbox entry id
targetQueue - target queue
message - message to relay
enqueueOptions - preserved enqueue options
idempotencyKey - optional idempotency key copied for convenience
createdAt - creation time
attempts - relay attempt count
published - whether the entry was durably marked published
failed - whether the entry exceeded relay attempts
All Implemented Interfaces:
Serializable

public record OutboxEntry(MessageId entryId, QueueName targetQueue, QueueMessage message, EnqueueOptions enqueueOptions, IdempotencyKey idempotencyKey, Instant createdAt, int attempts, boolean published, boolean failed) extends Record implements Serializable
Durable outbound message intent.

The record is immutable, serializable, and thread-safe. The entry contains the message and enqueue options that must be preserved through outbox recovery and relay. Payload data is durable queue data and must not be used in status or exception text.

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. 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.
    • entryId

      public MessageId entryId()
      Returns the value of the entryId record component.
      Returns:
      the value of the entryId record component
    • targetQueue

      public QueueName targetQueue()
      Returns the value of the targetQueue record component.
      Returns:
      the value of the targetQueue record component
    • message

      public QueueMessage message()
      Returns the value of the message record component.
      Returns:
      the value of the message record component
    • enqueueOptions

      public EnqueueOptions enqueueOptions()
      Returns the value of the enqueueOptions record component.
      Returns:
      the value of the enqueueOptions record component
    • idempotencyKey

      public IdempotencyKey idempotencyKey()
      Returns the value of the idempotencyKey record component.
      Returns:
      the value of the idempotencyKey record component
    • createdAt

      public Instant createdAt()
      Returns the value of the createdAt record component.
      Returns:
      the value of the createdAt record component
    • attempts

      public int attempts()
      Returns the value of the attempts record component.
      Returns:
      the value of the attempts record component
    • published

      public boolean published()
      Returns the value of the published record component.
      Returns:
      the value of the published record component
    • failed

      public boolean failed()
      Returns the value of the failed record component.
      Returns:
      the value of the failed record component