Skip to main 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 CaseRabbitMQRedis
Simple Celery brokerWorks, but heavierRecommended (simpler, free tier)
High-throughput task queuesRecommendedMay lose messages under pressure
Priority queuesNative supportLimited
Message routing / fan-outAdvanced routing featuresBasic pub/sub
CachingNot applicableRecommended

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