Configuration
Configure the Queue module inconfig.yaml:
config.yaml
Available Adapters
- Redis (Recommended)
- Builtin (Development)
- RabbitMQ
Production-ready distributed queue using Redis:
Publishing Messages
Use thequeue.enqueue function to publish messages:
Subscribing to Topics
Define queue triggers to subscribe to topics:index.ts
Message Format
Messages published to the queue include:Queue Configuration Options
Advanced queue configuration per subscriber:number
default:"3"
Maximum retry attempts for failed messages
number
default:"1000"
Delay between retries in milliseconds
string
Topic for messages that exceed max retries
Dead Letter Queue
Messages that fail after max retries are sent to the dead letter queue:DLQ Management Functions
The Queue module provides functions to manage the dead letter queue:Conditional Processing
Use conditions to filter messages before processing:Distributed Tracing
The Queue module automatically propagates OpenTelemetry trace context:Example: Email Queue
index.ts
Publishing from Functions
Topic Naming Conventions
Recommended topic naming patterns:- Entity.Action:
user.created,order.placed - Namespace.Entity.Action:
app.user.created - Hierarchy:
notifications.email.send
Performance Considerations
- Use Redis adapter for production workloads
- Configure appropriate
max_retriesbased on your use case - Monitor DLQ for failing messages
- Use distributed tracing to debug message flows
Source Code Reference
- Module:
src/modules/queue/queue.rs:34 - Enqueue function:
src/modules/queue/queue.rs:49 - Trigger registration:
src/modules/queue/queue.rs:81 - Queue adapter trait:
src/modules/queue/mod.rs:20