module Kafka::Retryable::HandleFailure::ClassMethods

Public Instance Methods

configure_handler(failure_handling_options) click to toggle source

Define failure handler configuration here

failure_handler buffer: :kafka,
                dead_letter_queue: :topic_t1,
                exception_blacklist: [Karafka::InvalidMessageError],
                after_failure: ->(error, _) { Bugsnag.notify(error) }

Only buffer and dead_letter_queue are required arguments

# File lib/kafka/retryable/handle_failure.rb, line 12
def configure_handler(failure_handling_options)
  validate_options(failure_handling_options)
  @@failure_configuration ||= {}
  @@failure_configuration[to_s] = failure_handling_options
end
failure_configuration() click to toggle source

@@failure_configuration is stored in a hash when the class is first loaded

# File lib/kafka/retryable/handle_failure.rb, line 19
def failure_configuration
  @@failure_configuration
end
validate_options(failure_handling_options) click to toggle source

Validate if the configuration passed is a valid one

If the configuration is invalid, raise exception
# File lib/kafka/retryable/handle_failure.rb, line 25
def validate_options(failure_handling_options)
  options_validator = Kafka::Retryable::Schemas::FailureHandlerOptions.call(
    failure_handling_options
  )
  return if options_validator.success?
  raise Kafka::Retryable::InvalidHandlingOptions.new(
    validation_errors: options_validator.errors
  )
end