KubeMQ
Client SDKsElixirReference

Events

Event structs and fire-and-forget messaging — KubeMQ Elixir SDK reference.

Events provide fire-and-forget messaging where published messages are delivered to all active subscribers. Events are not persisted — subscribers must be online to receive them.

Structs

KubeMQ.Event

Used to publish events.

FieldTypeDescription
idString.t()Auto-generated message ID
channelString.t()Target channel name
metadataString.t()Optional metadata string
bodyString.t() | binary()Message payload
client_idString.t()Sender client ID (auto-populated)
tagsmap()Optional key-value tags

KubeMQ.EventReceive

Received by subscribers.

FieldTypeDescription
idString.t()Message ID
channelString.t()Source channel
metadataString.t()Metadata string
bodyString.t() | binary()Message payload
timestampinteger()Server timestamp
sequenceinteger()Sequence number
tagsmap()Key-value tags

Publishing

event = KubeMQ.Event.new(
  channel: "notifications",
  body: "hello kubemq",
  metadata: "greeting",
  tags: %{"source" => "elixir"}
)

:ok = KubeMQ.Client.send_event(client, event)

Stream Publishing

Open a persistent stream for efficient high-throughput sending:

{:ok, handle} = KubeMQ.Client.send_event_stream(client)
:ok = KubeMQ.EventStreamHandle.send(handle, event)
KubeMQ.EventStreamHandle.close(handle)

Subscribing

{:ok, sub} = KubeMQ.Client.subscribe_to_events(client, "notifications",
  on_event: fn event -> IO.puts("Got: #{event.body}") end,
  on_error: fn err -> IO.puts("Error: #{err.message}") end,
  group: "my-group"
)

KubeMQ.Subscription.cancel(sub)

See Also

Was this page helpful?

On this page