View Source KafkaEx.Messages.OffsetAndMetadata (kafka_ex v1.0.0-rc.1)
Container for a committed offset with optional metadata.
This struct is used in offset commit operations to bundle an offset value with optional metadata that can be stored alongside it. The metadata is typically used for consumer group coordination or custom tracking purposes.
Java equivalent: org.apache.kafka.clients.consumer.OffsetAndMetadata
Summary
Functions
Builds an OffsetAndMetadata struct from keyword options.
Returns the leader epoch if present.
Returns the metadata string.
Creates a new OffsetAndMetadata with just an offset.
Creates a new OffsetAndMetadata with offset and metadata.
Returns the committed offset value.
Types
@type t() :: %KafkaEx.Messages.OffsetAndMetadata{ leader_epoch: non_neg_integer() | nil, metadata: String.t(), offset: non_neg_integer() }
Functions
Builds an OffsetAndMetadata struct from keyword options.
Options
:offset- (required) The committed offset value:metadata- Optional metadata string (default: ""):leader_epoch- Optional leader epoch for fencing
Examples
iex> OffsetAndMetadata.build(offset: 100)
%OffsetAndMetadata{offset: 100, metadata: "", leader_epoch: nil}
iex> OffsetAndMetadata.build(offset: 100, metadata: "v1", leader_epoch: 5)
%OffsetAndMetadata{offset: 100, metadata: "v1", leader_epoch: 5}
@spec leader_epoch(t()) :: non_neg_integer() | nil
Returns the leader epoch if present.
This is provided for API compatibility with Java's OffsetAndMetadata.leaderEpoch().
Returns nil if no leader epoch is set.
Returns the metadata string.
This is provided for API compatibility with Java's OffsetAndMetadata.metadata().
@spec new(non_neg_integer()) :: t()
Creates a new OffsetAndMetadata with just an offset.
Parameters
offset- The committed offset value (must be non-negative)
Examples
iex> OffsetAndMetadata.new(100)
%OffsetAndMetadata{offset: 100, metadata: "", leader_epoch: nil}
@spec new(non_neg_integer(), String.t()) :: t()
Creates a new OffsetAndMetadata with offset and metadata.
Parameters
offset- The committed offset value (must be non-negative)metadata- Metadata string to store with the offset
Examples
iex> OffsetAndMetadata.new(100, "consumer-v1")
%OffsetAndMetadata{offset: 100, metadata: "consumer-v1", leader_epoch: nil}
@spec offset(t()) :: non_neg_integer()
Returns the committed offset value.
This is provided for API compatibility with Java's OffsetAndMetadata.offset().