Skip to content
GitHub

Configuration

Configuration is loaded from the queue: section of application.yaml. Unlike most extension packages, QueueConfig is passed explicitly to QueueModule.configure(config) rather than auto-injected via config_key.

All keys can be overridden with environment variables using the prefix LEX_QUEUE__:

Terminal window
LEX_QUEUE__BACKENDS__0__DRIVER=redis \
LEX_QUEUE__BACKENDS__0__NAME=cache \
LEX_QUEUE__BACKENDS__0__PRIMARY=true \
LEX_QUEUE__BACKENDS__0__REDIS__URL=redis://localhost:6379/0
KeyTypeDefaultDescription
backendslist[NamedQueueConfig][]Named queue backend declarations
KeyTypeDefaultDescription
namestr(required)Unique backend ID, used as Named() DI key
primaryboolFalseAlso register under unnamed QueueProtocol binding
driverstr"memory"Backend driver: memory, redis, rabbitmq, kafka, sqs, azure_servicebus, gcp_pubsub
delivery_guaranteestr"at_least_once"Delivery semantics
max_retriesint3Max retries before DLQ routing
redisRedisDriverConfig | NoneNoneRedis-specific settings
rabbitmqRabbitMQDriverConfig | NoneNoneRabbitMQ-specific settings
kafkaKafkaDriverConfig | NoneNoneKafka-specific settings
sqsSQSDriverConfig | NoneNoneSQS-specific settings
azure_servicebusAzureServiceBusDriverConfig | NoneNoneAzure Service Bus settings
gcp_pubsubGCPPubSubDriverConfig | NoneNoneGCP Pub/Sub settings
KeyTypeDefaultDescription
urlstr | NoneNoneRedis URL (redis://host:port/db)
max_connectionsint10Connection pool size
socket_timeoutfloat5.0Socket timeout in seconds
KeyTypeDefaultDescription
urlstr | NoneNoneAMQP URL (amqp://user:pass@host/)
exchangestr"lexigram"Exchange name
prefetch_countint10Consumer prefetch count
KeyTypeDefaultDescription
bootstrap_serversstr | NoneNoneKafka broker(s) (host:port,host:port)
client_idstr"lexigram"Client ID
group_idstr"lexigram-consumers"Consumer group ID
auto_offset_resetstr"latest"Offset reset: earliest or latest
KeyTypeDefaultDescription
regionstr"us-east-1"AWS region
queue_urlstr | NoneNoneSQS queue URL
visibility_timeoutint30Visibility timeout in seconds
KeyTypeDefaultDescription
connection_strstr | NoneNoneService Bus connection string
queue_namestr""Queue name
max_message_countint10Max messages per receive call
max_wait_timefloat5.0Max wait per receive call (seconds)
KeyTypeDefaultDescription
project_idstr | NoneNoneGCP project ID
topic_idstr""Pub/Sub topic ID
subscription_idstr""Subscription ID for consuming
max_messagesint10Max messages per pull call
max_wait_timefloat5.0gRPC pull timeout (seconds)
queue:
backends:
- name: default
driver: memory
primary: true
queue:
backends:
- name: notifications
driver: redis
primary: true
max_retries: 5
redis:
url: "redis://localhost:6379/1"
max_connections: 20
- name: events
driver: kafka
delivery_guarantee: at_least_once
kafka:
bootstrap_servers: "localhost:9092,localhost:9093"
group_id: order-consumers
auto_offset_reset: earliest
- name: audit
driver: sqs
sqs:
region: us-west-2
queue_url: "https://sqs.us-west-2.amazonaws.com/123456789/audit"
Terminal window
LEX_QUEUE__BACKENDS__0__NAME=default \
LEX_QUEUE__BACKENDS__0__DRIVER=redis \
LEX_QUEUE__BACKENDS__0__PRIMARY=true \
LEX_QUEUE__BACKENDS__0__MAX_RETRIES=5 \
LEX_QUEUE__BACKENDS__0__REDIS__URL=redis://localhost:6379/1 \
LEX_QUEUE__BACKENDS__0__REDIS__MAX_CONNECTIONS=20