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



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