Skip to main content

RabbitMQ

RabbitMQ is a popular open-source message broker. It acts as middleware, implementing the Advanced Message Queuing Protocol (AMQP), and also supports other protocols like MQTT and STOMP.

It allows different software components or microservices to communicate asynchronously by exchanging messages through queues. This decouples producers (sending messages) from consumers (receiving messages), improving system resilience, scalability, and flexibility.

In our Galaxy setup, RabbitMQ is used for managing task queues, particularly for distributing job handling tasks or other background processes.

Deployment

RabbitMQ is deployed alongside our Galaxy instances. For more details on this process, refer to the galaxy page.

Automated Deployment Details

Deployment is managed through the rabbitmq Ansible role. This role includes:

Configuration

Configuration values are defined in Ansible variable files. There are not many configuration variables for RabbitMQ. The most important is the SSL certificate and key located here for calvera and here for calvera-test. Additional values are assigned in the in the galaxyservers folder.

Hosts sometimes overwrite configuration values. These host specific values are available in the host_vars folder.