class Kafka::FetchedBatch

An ordered sequence of messages fetched from a Kafka partition.

def empty?

def empty?
  @messages.empty?
end

def first_offset

def first_offset
  if empty?
    nil
  else
    messages.first.offset
  end
end

def initialize(topic:, partition:, highwater_mark_offset:, messages:)

def initialize(topic:, partition:, highwater_mark_offset:, messages:)
  @topic = topic
  @partition = partition
  @highwater_mark_offset = highwater_mark_offset
  @messages = messages
end

def last_offset

def last_offset
  if empty?
    highwater_mark_offset - 1
  else
    messages.last.offset
  end
end

def offset_lag

def offset_lag
  if empty?
    0
  else
    (highwater_mark_offset - 1) - last_offset
  end
end