Module: Karafka::Routing::Router

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

Overview

Note:

Since Kafka does not provide namespaces or modules for topics, they all have “flat” structure so all the routes are being stored in a single level array

Karafka framework Router for routing incoming messages to proper consumers

Class Method Summary collapse

Class Method Details

.find(topic_id) ⇒ Karafka::Routing::Route

Find a proper topic based on full topic id

Parameters:

  • topic_id (String)

    proper topic id (already mapped, etc) for which we want to find routing topic

Returns:

  • (Karafka::Routing::Route)

    proper route details

Raises:

  • (Karafka::Topic::NonMatchingTopicError)

    raised if topic name does not match any route defined by user using routes.draw



16
17
18
19
20
21
22
23
24
# File 'lib/karafka/routing/router.rb', line 16

def find(topic_id)
  App.consumer_groups.each do |consumer_group|
    consumer_group.topics.each do |topic|
      return topic if topic.id == topic_id
    end
  end

  raise(Errors::NonMatchingRouteError, topic_id)
end