RabbitMQ
RabbitMQ is a message broker that enables asynchronous task processing, event-driven architectures, and inter-service communication. It is a popular choice as a Celery broker, especially for workloads that benefit from advanced routing, priority queues, or message acknowledgement guarantees.
Provisioning RabbitMQ
- Open your application in the Appliku dashboard
- On the Application Overview page, scroll to the Databases block (bottom-right sidebar)
- Click Add Database
- Select RabbitMQ from the dropdown
- Select the server where RabbitMQ should run
- Click Create
Appliku provisions a RabbitMQ Docker container and generates connection credentials automatically.
Connection URL
Once provisioned, Appliku injects the RabbitMQ connection URL as an environment variable:
amqp://user:password@host:port/vhost
Your application can read this variable to connect to RabbitMQ without manual credential management.
Using RabbitMQ with Celery
RabbitMQ is the officially recommended broker for Celery. Configure it in your Django or Python project:
import os
CELERY_BROKER_URL = os.environ.get("RABBITMQ_URL", "amqp://guest:guest@localhost:5672//")
RabbitMQ vs. Redis as a Celery broker: Redis is simpler and included in the free plan. RabbitMQ offers more robust message delivery guarantees, routing flexibility, and handles high-throughput workloads better. Choose RabbitMQ if your application requires reliable message delivery or complex routing patterns.
When to Use RabbitMQ
| Use Case | RabbitMQ | Redis |
|---|---|---|
| Simple Celery broker | Works, but heavier | Recommended (simpler, free tier) |
| High-throughput task queues | Recommended | May lose messages under pressure |
| Priority queues | Native support | Limited |
| Message routing / fan-out | Advanced routing features | Basic pub/sub |
| Caching | Not applicable | Recommended |
Managing RabbitMQ
From the Application Overview page, click Manage in the Databases card to:
- Start / Stop / Restart the RabbitMQ container
- View logs for debugging connection or queue issues
- Delete the instance
Next Steps
- Redis -- Simpler alternative for caching and basic message brokering
- Database Management Overview -- All supported database engines