Skip to content

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

  1. Open your application in the Appliku dashboard
  2. On the Application Overview page, scroll to the Databases block (bottom-right sidebar)
  3. Click Add Database
  4. Select RabbitMQ from the dropdown
  5. Select the server where RabbitMQ should run
  6. 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//")

Tip

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