Module: Kafka::Retryable::HandleFailure::ClassMethods

Defined in:
lib/kafka/retryable/handle_failure.rb

Instance Method Summary collapse

Instance Method Details

#configure_handler(failure_handling_options) ⇒ Object

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



12
13
14
15
16
# 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_configurationObject

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



19
20
21
# File 'lib/kafka/retryable/handle_failure.rb', line 19

def failure_configuration
  @@failure_configuration
end

#validate_options(failure_handling_options) ⇒ Object

Validate if the configuration passed is a valid one

If the configuration is invalid, raise exception


25
26
27
28
29
30
31
32
33
# 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