Documentation
¶
Overview ¶
Package redispub provides a Redis Stream publisher using Watermill message bus.
This package wraps Watermill's Redis Stream publisher to provide event publishing with configurable timeout and error handling. It uses Redis Streams as the underlying transport for reliable message delivery.
Basic usage:
publisher, err := redispub.New(redisClient, &redispub.Config{
Timeout: 5 * time.Second,
})
if err != nil {
log.Fatal(err)
}
defer publisher.Close()
msg := &message.Message{
UUID: uuid.New().String(),
Payload: []byte(`{"event":"user.created"}`),
}
err = publisher.Publish(ctx, "events", msg)
Messages are published to Redis Stream keys which can be consumed by subscribers. The Watermill framework provides automatic marshaling, error handling, and routing.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrPublisherInitialization = errors.New("publisher: failed to initialize redis stream publisher") ErrPublishFailed = errors.New("publisher: failed to publish messages") ErrNilRedisClient = errors.New("publisher: redis client is required") ErrInvalidMaxStreamEntries = errors.New("publisher: maxStreamEntries cannot be negative") )
Functions ¶
This section is empty.
Types ¶
type Options ¶
type Options struct {
MaxStreamEntries int64
Timeout time.Duration
Logger watermill.LoggerAdapter
}
type RedisPublisher ¶
type RedisPublisher struct {
// contains filtered or unexported fields
}
func New ¶
func New(redisClient goredis.UniversalClient, opts Options) (*RedisPublisher, error)
func (*RedisPublisher) Close ¶
func (p *RedisPublisher) Close() error
func (*RedisPublisher) PublishToTopic ¶
Click to show internal directories.
Click to hide internal directories.