Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Message ¶
type Message struct {
// ID uniquely identifies the message for deduplication and tracing.
//
// Deduplication is against every message the backend still holds for the
// same topic and partition key — including ones already consumed, which are
// reclaimed lazily and may outlive their delivery by an unbounded interval.
// A publish whose ID collides is reported as a success and stores nothing.
//
// So the ID names the occasion to publish, not the entity published about.
// Reusing an entity's own ID gives that entity one message for as long as
// the backend remembers the first, and silently discards every later one.
// Producers build IDs with platform/publish.IntentID rather than choosing
// them by hand.
ID string
// Payload is the message body as raw bytes.
Payload []byte
// Metadata contains key-value pairs for headers and attributes.
// Use for trace IDs, request IDs, and cross-service metadata.
Metadata map[string]string
// PartitionKey determines which partition/shard this message goes to.
// Messages with the same PartitionKey are guaranteed ordered delivery.
// Optional - if empty, backend may use round-robin distribution.
PartitionKey string
// PublishedAt is when the message was published (Unix milliseconds).
PublishedAt int64
}
Message represents a queue message entity. Immutable - use Copy() for modifications.
func NewMessage ¶
NewMessage creates a new message with the given ID, payload, partition key, and metadata. If metadata is nil, it will be initialized as an empty map. PublishedAt is set to the current time.
Click to show internal directories.
Click to hide internal directories.