Julewire Karafka
Karafka and WaterDrop integration for Julewire.
It uses structured integration points only: Karafka monitor events, WaterDrop middleware, WaterDrop monitor events, and explicit per-message context restoration.
Quickstart
Consumer events:
class KarafkaApp < Karafka::App
setup do |config|
Julewire::Karafka.install!(monitor: config.monitor)
end
end
Message processing:
def consume
.each do ||
Julewire::Karafka.() do
process()
mark_as_consumed()
end
end
end
Producer headers and WaterDrop events:
Julewire::Karafka.install!(consumer: false, producer: producer)
Default behavior:
- important consumer and producer monitor events become point records
- message headers carry Julewire propagation carriers
with_messagerestores message context and adds message attributes- Karafka fork hooks call
Julewire.after_fork! - text logger listeners are not parsed or deduplicated
Inbound Kafka carriers are trusted by default for internal service traffic. Set
carrier_filter when consuming topics that external producers can write to.