Module: Julewire::Karafka

Extended by:
Core::Integration::Configurable
Defined in:
lib/julewire/karafka.rb,
lib/julewire/karafka/version.rb,
lib/julewire/karafka/installer.rb,
lib/julewire/karafka/fork_hooks.rb,
lib/julewire/karafka/configuration.rb,
lib/julewire/karafka/event_payload.rb,
lib/julewire/karafka/event_severity.rb,
lib/julewire/karafka/payload_reader.rb,
lib/julewire/karafka/message_context.rb,
lib/julewire/karafka/monitor_listener.rb,
lib/julewire/karafka/message_execution.rb,
lib/julewire/karafka/waterdrop_installer.rb,
lib/julewire/karafka/messaging_attributes.rb,
lib/julewire/karafka/monitor_subscription.rb,
lib/julewire/karafka/waterdrop_middleware.rb

Defined Under Namespace

Modules: EventPayload, EventSeverity, ForkHooks, Installer, MessageContext, MessageExecution, MessagingAttributes, PayloadReader, WaterdropInstaller Classes: Configuration, Error, InstallResult, MonitorListener, WaterdropMiddleware

Constant Summary collapse

IntegrationHealth =
Core::Integration::Health.scoped(:karafka)
VERSION =
"1.1.0"

Class Method Summary collapse

Class Method Details

.inject!(message, configuration: config) ⇒ Object



30
31
32
# File 'lib/julewire/karafka.rb', line 30

def inject!(message, configuration: config)
  WaterdropMiddleware.new(configuration: configuration).call(message)
end

.install!(app: nil, monitor: nil, producer: nil, consumer: true, configuration: config) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/julewire/karafka.rb', line 18

def install!(app: nil, monitor: nil, producer: nil, consumer: true, configuration: config)
  return false unless configuration.enabled?

  consumer_result = Installer.install!(app: app, monitor: monitor, configuration: configuration) if consumer
  return consumer_result unless producer

  producer_result = WaterdropInstaller.install!(producer, configuration: configuration)
  return InstallResult.new(consumer_result, producer_result) if consumer

  producer_result
end

.with_message(message, configuration: config) ⇒ Object



34
35
36
# File 'lib/julewire/karafka.rb', line 34

def with_message(message, configuration: config, &)
  MessageContext.call(message, configuration: configuration, &)
end

.with_message_execution(message, configuration: config, **execution_options) ⇒ Object



38
39
40
# File 'lib/julewire/karafka.rb', line 38

def with_message_execution(message, configuration: config, **execution_options, &)
  MessageExecution.call(message, configuration: configuration, **execution_options, &)
end