class Karafka::Routing::ConsumerMapper

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 with Karafka client_id + consumer name concept

@example Mapper for using consumer groups without a client_id prefix

class MyMapper
  def call(raw_consumer_group_name)
    raw_consumer_group_name
  end
end

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

class MyMapper
  def call(raw_consumer_group_name)
    [
      Karafka::Helpers::Inflector.map(Karafka::App.config.client_id.to_s),
      raw_consumer_group_name
    ].join('_').gsub('_', '.')
  end
end

Public Instance Methods

call(raw_consumer_group_name) click to toggle source

@param raw_consumer_group_name [String, Symbol] string or symbolized consumer group name @return [String] remapped final consumer group name

# File lib/karafka/routing/consumer_mapper.rb, line 28
def call(raw_consumer_group_name)
  client_name = Karafka::Helpers::Inflector.map(Karafka::App.config.client_id.to_s)
  "#{client_name}_#{raw_consumer_group_name}"
end