driver

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package driver defines the interface for message queue service implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DeadLetterConfig

type DeadLetterConfig struct {
	TargetQueueURL  string
	MaxReceiveCount int // move to DLQ after this many receives
}

DeadLetterConfig configures a dead-letter queue for failed messages.

type Message

type Message struct {
	MessageID     string
	ReceiptHandle string
	Body          string
	Attributes    map[string]string
	GroupID       string
}

Message is a received message.

type MessageQueue

type MessageQueue interface {
	CreateQueue(ctx context.Context, config QueueConfig) (*QueueInfo, error)
	DeleteQueue(ctx context.Context, url string) error
	GetQueueInfo(ctx context.Context, url string) (*QueueInfo, error)
	ListQueues(ctx context.Context, prefix string) ([]QueueInfo, error)

	SendMessage(ctx context.Context, input SendMessageInput) (*SendMessageOutput, error)
	ReceiveMessages(ctx context.Context, input ReceiveMessageInput) ([]Message, error)
	DeleteMessage(ctx context.Context, queueURL, receiptHandle string) error
	ChangeVisibility(ctx context.Context, queueURL, receiptHandle string, timeout int) error
}

MessageQueue is the interface that message queue provider implementations must satisfy.

type QueueConfig

type QueueConfig struct {
	Name              string
	FIFO              bool
	DelaySeconds      int
	VisibilityTimeout int // seconds
	MaxMessageSize    int
	MessageRetention  int // seconds
	Tags              map[string]string
	DeadLetterQueue   *DeadLetterConfig
}

QueueConfig describes a message queue to create.

type QueueInfo

type QueueInfo struct {
	URL                string
	ARN                string
	Name               string
	FIFO               bool
	ApproxMessageCount int
	Tags               map[string]string
}

QueueInfo describes a message queue.

type ReceiveMessageInput

type ReceiveMessageInput struct {
	QueueURL          string
	MaxMessages       int
	WaitTimeSeconds   int
	VisibilityTimeout int
}

ReceiveMessageInput configures a message receive operation.

type SendMessageInput

type SendMessageInput struct {
	QueueURL        string
	Body            string
	DelaySeconds    int
	GroupID         string // FIFO only
	DeduplicationID string // FIFO only
	Attributes      map[string]string
}

SendMessageInput configures a message send operation.

type SendMessageOutput

type SendMessageOutput struct {
	MessageID string
}

SendMessageOutput is the result of sending a message.

Jump to

Keyboard shortcuts

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