Versions in this module Expand all Collapse all v1 v1.0.0 Sep 24, 2023 Changes in this version + const DefaultAttemptTimeout + const DefaultMaxAttempts + const MaxExponentialBackoff + const MessageConsumedFailedKey + const MessageConsumedKey + var ErrNoMessage = errors.New("no message in mailbox") + var ErrNoRouteMatch = errors.New("no route matches the message") + var ErrNoTx = errors.New("no transaction found in context") + func ExponentialBackoff(i int, _ Message) time.Duration + type ConsumeFn = func(context.Context, Message) error + func RoutingConsumer(routes ...Route) ConsumeFn + func WithMoveToMailbox(m Mailbox) ConsumeFn + type ConsumeMiddleware = func(ConsumeFn) ConsumeFn + func WithObservabilityConsume(p ObservabilityPolicy) ConsumeMiddleware + func WithRetryPolicyConsume(p RetryPolicy) ConsumeMiddleware + type Consumer interface + Consume func(context.Context) error + Size func(context.Context) (size int64, err error) + func NewConsumer(ctx context.Context, transactor tx.Transactor, table string, consume ConsumeFn) (Consumer, error) + type Mailbox interface + Put func(context.Context, *sql.Tx, Message) error + func NewMailbox(table string) Mailbox + type MatchFn func(Message) bool + type Message struct + ID string + Metadata map[string]string + Payload []byte + type Metadata = internal.Metadata + type ObservabilityPolicy struct + Attrs func(context.Context, Message) []any + LogSuccess bool + Logger *slog.Logger + Metrics *expvar.Map + type RetryPolicy struct + AttemptTimeout time.Duration + Backoff func(int, Message) time.Duration + Final ConsumeFn + MaxAttempts int + type Route struct + Consume ConsumeFn + Match MatchFn