Class: Karafka::Routing::ConsumerMapper

Inherits:
Object
  • Object
show all
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 with Karafka client_id + consumer name concept

Examples:

Mapper for using consumer groups without a client_id prefix

class MyMapper
  def call(raw_consumer_group_name)
    raw_consumer_group_name
  end
end

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

Instance Method Summary collapse

Instance 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 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