Module: Karafka::Routing::ConsumerMapper

Defined in:
lib/karafka/routing/consumer_mapper.rb

Overview

Default consumer mapper that builds consumer ids based on app id and consumer group name Different mapper can be used in case of preexisting consumer names or for applying other naming conventions not compatible wiih Karafkas client_id + consumer name concept

Examples:

Mapper for using consumer groups without a client_id prefix

module MyMapper
  def self.call(raw_consumer_group_name)
    raw_consumer_group_name
  end
end

Mapper for replacing “_” with “.” in topic names

module MyMapper
  def self.call(raw_consumer_group_name)
    [
      Dry::Inflector.new.underscore(Karafka::App.config.client_id.to_s),
      raw_consumer_group_name
    ].join('_').gsub('_', '.')
  end
end

Class Method Summary collapse

Class Method Details

.call(raw_consumer_group_name) ⇒ String

Returns remapped final consumer group name.

Parameters:

  • raw_consumer_group_name (String, Symbol)

    string or symbolized consumer group name

Returns:

  • (String)

    remapped final consumer group name



28
29
30
31
# File 'lib/karafka/routing/consumer_mapper.rb', line 28

def self.call(raw_consumer_group_name)
  client_name = Dry::Inflector.new.underscore(Karafka::App.config.client_id.to_s)
  "#{client_name}_#{raw_consumer_group_name}"
end