mq

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package mq provides SDK-free adapters for propagating SaaS tenant metadata through NATS, RabbitMQ, and Kafka message headers.

Package mq 提供与 SDK 无关的适配器,用于通过 NATS、RabbitMQ 和 Kafka 消息头传播 SaaS 租户元数据。

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidHeaders reports a nil message-header wrapper.
	ErrInvalidHeaders = errors.New("saas/rpc/mq: invalid headers")
)

Functions

This section is empty.

Types

type KafkaCarrier

type KafkaCarrier struct {
	// contains filtered or unexported fields
}

KafkaCarrier adapts KafkaHeaders to rpc.Carrier.

func NewKafkaCarrier

func NewKafkaCarrier(headers KafkaHeaders) (KafkaCarrier, error)

NewKafkaCarrier creates an rpc.Carrier backed by Kafka record headers.

func (KafkaCarrier) Get

func (carrier KafkaCarrier) Get(key string) (string, bool)

Get converts a Kafka byte header to a string. Missing and empty byte headers are treated as absent tenant metadata.

func (KafkaCarrier) Set

func (carrier KafkaCarrier) Set(key string, value string)

Set converts a tenant metadata string to a Kafka byte header.

type KafkaHeaders

type KafkaHeaders interface {
	GetBytes(key string) ([]byte, bool)
	SetBytes(key string, value []byte)
}

KafkaHeaders is the host-owned Kafka record-header wrapper used by KafkaCarrier. It intentionally exposes byte values because Kafka headers are binary metadata.

type NATSCarrier

type NATSCarrier struct {
	// contains filtered or unexported fields
}

NATSCarrier adapts NATSHeaders to rpc.Carrier.

func NewNATSCarrier

func NewNATSCarrier(headers NATSHeaders) (NATSCarrier, error)

NewNATSCarrier creates an rpc.Carrier backed by NATS message headers.

func (NATSCarrier) Get

func (carrier NATSCarrier) Get(key string) (string, bool)

Get returns a NATS header value. NATS cannot distinguish an empty value from an absent value through this minimal interface, so empty values are treated as absent.

func (NATSCarrier) Set

func (carrier NATSCarrier) Set(key string, value string)

Set stores a tenant metadata value in the NATS headers.

type NATSHeaders

type NATSHeaders interface {
	Get(key string) string
	Set(key, value string)
}

NATSHeaders is the host-owned NATS message-header wrapper used by NATSCarrier. It intentionally mirrors only the string operations required for tenant metadata propagation.

type RabbitMQCarrier

type RabbitMQCarrier struct {
	// contains filtered or unexported fields
}

RabbitMQCarrier adapts RabbitMQHeaders to rpc.Carrier.

func NewRabbitMQCarrier

func NewRabbitMQCarrier(headers RabbitMQHeaders) (RabbitMQCarrier, error)

NewRabbitMQCarrier creates an rpc.Carrier backed by RabbitMQ message headers.

func (RabbitMQCarrier) Get

func (carrier RabbitMQCarrier) Get(key string) (string, bool)

Get returns a RabbitMQ string header using the host wrapper's presence contract.

func (RabbitMQCarrier) Set

func (carrier RabbitMQCarrier) Set(key string, value string)

Set stores a tenant metadata value in the RabbitMQ headers.

type RabbitMQHeaders

type RabbitMQHeaders interface {
	GetString(key string) (string, bool)
	SetString(key, value string)
}

RabbitMQHeaders is the host-owned RabbitMQ message-header wrapper used by RabbitMQCarrier. It keeps the host's explicit string-presence contract.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL