Class: KubeMQ::PubSub::EventMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/kubemq/pubsub/event_message.rb

Overview

Outbound event message for fire-and-forget pub/sub.

Construct an EventMessage and pass it to KubeMQ::PubSubClient#send_event or KubeMQ::PubSub::EventSender#publish. Events are not persisted — use EventStoreMessage for durable delivery.

Examples:

msg = KubeMQ::PubSub::EventMessage.new(
  channel: "notifications.email",
  metadata: "user-signup",
  body: '{"user_id": 42}',
  tags: { "priority" => "high" }
)
result = client.send_event(msg)

See Also:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(channel:, metadata: nil, body: nil, tags: nil, id: nil) ⇒ EventMessage

Returns a new instance of EventMessage.

Parameters:

  • channel (String)

    target channel name (required)

  • metadata (String, nil) (defaults to: nil)

    arbitrary metadata

  • body (String, nil) (defaults to: nil)

    message payload

  • tags (Hash{String => String}, nil) (defaults to: nil)

    key-value tags (default: {})

  • id (String, nil) (defaults to: nil)

    message ID (default: auto-generated UUID)



43
44
45
46
47
48
49
# File 'lib/kubemq/pubsub/event_message.rb', line 43

def initialize(channel:, metadata: nil, body: nil, tags: nil, id: nil)
  @id = id || SecureRandom.uuid
  @channel = channel
   = 
  @body = body
  @tags = tags || {}
end

Instance Attribute Details

#bodyString?

Returns message payload (binary-safe).

Returns:

  • (String, nil)

    message payload (binary-safe)



36
# File 'lib/kubemq/pubsub/event_message.rb', line 36

attr_accessor :id, :channel, :metadata, :body, :tags

#channelString

Returns target channel name.

Returns:

  • (String)

    target channel name



36
# File 'lib/kubemq/pubsub/event_message.rb', line 36

attr_accessor :id, :channel, :metadata, :body, :tags

#idString

Returns unique message identifier (auto-generated UUID if not provided).

Returns:

  • (String)

    unique message identifier (auto-generated UUID if not provided)



36
37
38
# File 'lib/kubemq/pubsub/event_message.rb', line 36

def id
  @id
end

#metadataString?

Returns arbitrary metadata string.

Returns:

  • (String, nil)

    arbitrary metadata string



36
# File 'lib/kubemq/pubsub/event_message.rb', line 36

attr_accessor :id, :channel, :metadata, :body, :tags

#tagsHash{String => String}

Returns user-defined key-value tags.

Returns:

  • (Hash{String => String})

    user-defined key-value tags



36
# File 'lib/kubemq/pubsub/event_message.rb', line 36

attr_accessor :id, :channel, :metadata, :body, :tags