class Karafka::Routing::Builder

end
end
consumer NewVideosConsumer
topic :new_videos do
consumers do
@example Build a simple (most common) route
Builder used as a DSL layer for building consumers and telling them which topics to consume

def active

Returns:
  • (Array) - only active consumer groups that
def active
  select(&:active?)
end

def consumer_group(group_id, &block)

Other tags:
    Yield: - Evaluates a given block in a consumer group context

Parameters:
  • group_id (String, Symbol) -- name for consumer group
def consumer_group(group_id, &block)
  consumer_group = ConsumerGroup.new(group_id.to_s)
  self << Proxy.new(consumer_group, &block).target
end

def draw(&block)

Other tags:
    Yield: - Evaluates provided block in a builder context so we can describe routes

Other tags:
    Note: - After it is done drawing it will store and validate all the routes to make sure that
def draw(&block)
  instance_eval(&block)
  each do |consumer_group|
    hashed_group = consumer_group.to_h
    validation_result = Karafka::Schemas::ConsumerGroup.call(hashed_group)
    return if validation_result.success?
    raise Errors::InvalidConfiguration, validation_result.errors
  end
end

def topic(topic_name, &block)

Other tags:
    Yield: - Evaluates a given block in a topic context

Parameters:
  • topic_name (String, Symbol) -- name of a topic from which we want to consumer
def topic(topic_name, &block)
  consumer_group(topic_name) do
    topic(topic_name, &block).tap(&:build)
  end
end