class WaterDrop::Producer::Builder

Class used to construct the rdkafka producer client

Public Instance Methods

call(producer, config) click to toggle source

@param producer [Producer] not yet configured producer for which we want to

build the client

@param config [Object] dry-configurable based configuration object @return [Rdkafka::Producer, Producer::DummyClient] raw rdkafka producer or a dummy producer

when we don't want to dispatch any messages
# File lib/waterdrop/producer/builder.rb, line 12
def call(producer, config)
  klass = config.client_class
  # This allows us to have backwards compatibility.
  # If it is the default client and delivery is set to false, we use dummy as we used to
  # before `client_class` was introduced
  klass = Clients::Dummy if klass == Clients::Rdkafka && !config.deliver

  klass.new(producer)
end