Broadway producer for KubeMQ Events (Pub/Sub).
Wraps KubeMQ.Client.subscribe_to_events/3 and delivers each
KubeMQ.EventReceive as a Broadway.Message.
Usage
defmodule MyPipeline do
use Broadway
def start_link(_opts) do
Broadway.start_link(__MODULE__,
name: __MODULE__,
producer: [
module: {KubeMQ.Broadway.Events, [
client: MyApp.KubeMQ,
channel: "events.>",
group: "pipeline"
]}
],
processors: [default: [concurrency: 4]]
)
end
@impl true
def handle_message(_processor, message, _context) do
event = message.data
IO.inspect(event.channel, label: "received on")
message
end
end
Summary
Types
@type option() :: {:client, GenServer.server()} | {:channel, String.t()} | {:group, String.t()} | {:max_buffer_size, pos_integer()}