Documentation
¶
Overview ¶
Package idempotencyqueue provides durable consumer ownership and redelivery deduplication for messages exposing a Payload method.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInProgress tells a broker to retry after another owner's lease. ErrInProgress = errors.New("idempotencyqueue: delivery in progress") // ErrConflict identifies reuse of a delivery key for a different payload. ErrConflict = errors.New("idempotencyqueue: delivery fingerprint conflict") // ErrTerminalFailure identifies a previously recorded permanent failure. ErrTerminalFailure = errors.New("idempotencyqueue: delivery terminally failed") )
Functions ¶
Types ¶
type FingerprintFunc ¶
type FingerprintFunc func(Message) (idempotency.Fingerprint, error)
FingerprintFunc computes canonical payload identity.
type Message ¶
type Message interface {
Payload() []byte
}
Message is satisfied by queue core.TaskMessage and similar deliveries.
type Middleware ¶
type Middleware struct {
// contains filtered or unexported fields
}
Middleware deduplicates completed deliveries and owns retry transitions.
func New ¶
func New(options Options) (*Middleware, error)
New validates options and constructs queue middleware.
type Options ¶
type Options struct {
Service *idempotency.Service
Lease time.Duration
TransitionTimeout time.Duration
Key KeyFunc
Fingerprint FingerprintFunc
}
Options configures durable consumer ownership and cleanup.
Click to show internal directories.
Click to hide internal directories.