# Rabbit MQ Consumer

The **RabbitMQ Consumer** component subscribes to a **RabbitMQ queue** and consumes messages in a push-based manner.

RabbitMQ is an **open-source message broker** that implements the **Advanced Message Queuing Protocol (AMQP)**, enabling communication between distributed applications or services. It supports messaging patterns such as:

* **Point-to-Point** (direct queue messaging)
* **Publish/Subscribe** (fan-out messaging)
* **Request/Reply** (RPC-style messaging)

With built-in features like **message acknowledgments, durable queues, clustering, and fault tolerance**, RabbitMQ is widely used for **scalable and reliable messaging pipelines**.

### Configuration Sections

All component configurations are classified into the following sections:

* **Basic Information**
* **Meta Information**
* **Resource Configuration**
* **Connection Validation**

### Basic Information Tab

The *Basic Information* tab defines execution and deployment settings.

| Field                       | Description                                                   | Required |
| --------------------------- | ------------------------------------------------------------- | -------- |
| **Invocation Type**         | Select execution mode: **Batch** or **Real-Time**.            | Yes      |
| **Deployment Type**         | Displays the deployment type of the component (pre-selected). | Yes      |
| **Container Image Version** | Displays the Docker image version used (pre-selected).        | Yes      |
| **Failover Event**          | Select a failover event for handling retries or errors.       | Optional |
| **Batch Size**              | Maximum number of records processed per cycle (minimum: 10).  | Yes      |

### Meta Information Tab

The *Meta Information* tab configures the RabbitMQ server connection and queue details.

| Field        | Description                                                                                       | Required |
| ------------ | ------------------------------------------------------------------------------------------------- | -------- |
| **Host**     | RabbitMQ server hostname or IP address.                                                           | Yes      |
| **Port**     | RabbitMQ server port (default: **5672**).                                                         | Yes      |
| **Username** | Username for authenticating with RabbitMQ.                                                        | Yes      |
| **Password** | Password for authentication.                                                                      | Yes      |
| **Queue**    | Name of the RabbitMQ queue to consume from. Queues buffer messages until consumed by subscribers. | Yes      |

### Saving the Configuration

1. Configure the required fields under **Basic Information** and **Meta Information**.
2. Click **Save Component** (Storage icon).
3. A confirmation message appears after the configuration is saved successfully.
4. Activate the pipeline to begin consuming messages from the specified RabbitMQ queue.

### Example Workflow

1. Configure the RabbitMQ Consumer with:
   * **Host**: `rabbitmq-server.local`
   * **Port**: `5672`
   * **Username**: `pipeline_user`
   * **Password**: `******`
   * **Queue**: `orders_queue`
2. Activate the pipeline.
3. The consumer receives order messages from the `orders_queue` and passes them to downstream processing components for analytics and storage.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bdb.ai/bdb-user-documentation/platform-modules/11.0/data-engineering/data-pipelines/pipeline-editor/pipeline-components/consumers/rabbit-mq-consumer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
