RabbitMQ Messaging Links

Links to RabbitMQ exchange and queue sub-components enable message publishing and consumption

🔀 Link Type Distinction

*-exchange (Publish)
Publish messages to exchange
Direction: Producer → RabbitMQ
*-queue (Consume)
Consume messages from queue
Direction: RabbitMQ → Consumer

🔗 Supported Link Types

Exchange Links (Publish)

image_base-exchange
fastapi-exchange
nodejs-exchange
airflow-exchange

Queue Links (Consume)

image_base-queue
fastapi-queue
nodejs-queue
keda-queue

⚙️ Generated Environment Variables

# Automatically configured when you create a RabbitMQ link
RABBITMQ_HOST=auto-configured
RABBITMQ_PORT=5672
RABBITMQ_USER={exchange_user or queue_user}
RABBITMQ_PASSWORD={exchange_password or queue_password}
RABBITMQ_VHOST={vhost}
AMQP_URL=amqp://{user}:{password}@{host}:{port}/{vhost}
# For exchange links
RABBITMQ_EXCHANGE={exchange_name}
RABBITMQ_EXCHANGE_TYPE={exchange_type}
# For queue links
RABBITMQ_QUEUE={queue_name}

📄 Generated Files

Link Type Generated Files Contents
*-exchange 📁 src/rabbitmq_module/ Publisher helpers, connection utils
*-queue 📁 src/rabbitmq_module/ Consumer helpers, connection utils
exchange-queue 📄 binding.yaml Binding from exchange to queue with routing key

📈 KEDA Queue Scaling (keda-queue)

When KEDA links to a queue, it creates a ScaledObject for auto-scaling based on queue depth

Attribute Description
keda_queue_mode QueueLength | MessageRate
keda_queue_value Threshold value (e.g., "10")