Sha256: bd42326c09dd22c60c49053a28a155fc0315565a241ac767d9091c15ed8a6d74

Contents?: true

Size: 1.18 KB

Versions: 42

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Karafka
  module Routing
    # 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
    class ConsumerMapper
      # @param raw_consumer_group_name [String, Symbol] string or symbolized consumer group name
      # @return [String] remapped final consumer group name
      def call(raw_consumer_group_name)
        "#{Karafka::App.config.client_id}_#{raw_consumer_group_name}"
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
karafka-2.0.0.alpha2 lib/karafka/routing/consumer_mapper.rb
karafka-2.0.0.alpha1 lib/karafka/routing/consumer_mapper.rb