Module: Karafka::Params::Builders::Metadata

Defined in:
lib/karafka/params/builders/metadata.rb

Overview

Note:

We have 2 ways of creating metadata based on the way ruby-kafka operates

Builder for creating metadata object based on the message or batch informations

Class Method Summary collapse

Class Method Details

.from_kafka_batch(kafka_batch, topic) ⇒ Karafka::Params::Metadata

Creates metadata based on the kafka batch data

Parameters:

  • kafka_batch (Kafka::FetchedBatch)

    kafka batch details

  • topic (Karafka::Routing::Topic)

    topic for which we’ve fetched the batch

Returns:



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/karafka/params/builders/metadata.rb', line 14

def from_kafka_batch(kafka_batch, topic)
  Karafka::Params::Metadata
    .new
    .merge!(
      'batch_size' => kafka_batch.messages.count,
      'first_offset' => kafka_batch.first_offset,
      'highwater_mark_offset' => kafka_batch.highwater_mark_offset,
      'last_offset' => kafka_batch.last_offset,
      'offset_lag' => kafka_batch.offset_lag,
      'deserializer' => topic.deserializer,
      'partition' => kafka_batch.partition,
      'topic' => kafka_batch.topic,
      'unknown_last_offset' => kafka_batch.unknown_last_offset?
    )
end