# G2P Program Datashare: RabbitMQ

### Module name

`g2p_program_datashare_rabbitmq`

### Module title

G2P Program Datashare: RabbitMQ

### Technology base

[Odoo](https://www.odoo.com/)

### Functionality

This module extends the core [RabbitMQ DataShare](/products/registry/registry/_archive/social-registry/developer-zone/odoo-modules/g2p-registry-datashare-rabbitmq.md) module to support publishing **Beneficiary Registry** data from PBMS (`g2p.program_membership` to external systems via RabbitMQ.

Key enhancements:

* **New Data Source Type**: Introduces a new `data_source` value: `beneficiary_registry`, allowing RabbitMQ configurations specific to PBMS beneficiary data.
* **Program-Specific Configuration**: Introduces a `program_id` field in the RabbitMQ configuration to optionally scope data sharing to a specific program.
* **Automatic Publishing on Change**: Automatically triggers data publishing when a beneficiary is added to a program or when their record is updated.
* **Reuses Core Functionality**: Inherits and utilizes the base module’s RabbitMQ connection and JQ transformation capabilities.

With this module, key beneficiary information—such as program enrollment and participation details—can be streamed in real time to downstream systems for analytics, interoperability, or reporting purposes.

### Source code

[https://github.com/openg2p/openg2p-program](https://github.com/openG2P/openg2p-program)


---

# 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.openg2p.org/products/pbms/previous-generation/developer-zone/odoo-modules/g2p-program-datashare-rabbitmq.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.
