Skip to Content
EngineErweiterungenRabbitMQ-Messagebus

RabbitMQ-Messagebus

Die RabbitMQ-Extension (@5minds/processcube_engine_rabbitmq_extension) bindet einen RabbitMQ-Broker (AMQP) als Transportschicht für Engine-Signale und -Nachrichten an. Damit lassen sich BPMN-Signal- und -Message-Events über RabbitMQ zwischen Engine-Instanzen und externen Systemen austauschen.

Funktionsweise

  • Events senden — Throw-Events (Signale/Messages) aus Prozessen an RabbitMQ weiterleiten
  • Nachrichten empfangen — über RabbitMQ-Messages Catch-Events auslösen und Prozesse fortsetzen
  • Asynchrone Kommunikation — Prozesse über System-Grenzen hinweg verbinden

Architektur

Die Extension registriert sich über onLoad und verbindet sich über die Engine-Lifecycle-Hooks onBeforeResuming (Throw-Events) und onReady (Catch-Events). Ein RabbitMQAdapter implementiert das IMessageBusAdapter-Interface (siehe Messagebus-SDK) und bildet Engine-Events als JSON auf AMQP-Exchanges/Queues ab.

Einrichten

Die Extension ist im Engine-Image enthalten und wird automatisch aktiv, sobald RABBITMQ_CONNECTION_STRING gesetzt ist.

Konfiguration

Env-VariableDefaultBeschreibung
RABBITMQ_CONNECTION_STRINGString, Pflicht. AMQP-Verbindungsstring, z.B. amqp://user:pass@host:5672

Host, Port, Benutzer und Passwort stecken im Connection-String (amqp://<user>:<pass>@<host>:<port>) — es gibt keine separaten Einzel-Variablen.

Verwendung

docker-compose.yml
services: rabbitmq: image: rabbitmq:3-management ports: - "5672:5672" - "15672:15672" environment: RABBITMQ_DEFAULT_USER: admin RABBITMQ_DEFAULT_PASS: admin engine: image: marketplace.processcube.io/processcube-io/processcube_engine:latest ports: - "8000:8000" environment: - RABBITMQ_CONNECTION_STRING=amqp://admin:admin@rabbitmq:5672 depends_on: - rabbitmq

Verwaltungsoberfläche

Nach dem Start ist die RabbitMQ-Management-Oberfläche unter http://localhost:15672 erreichbar (Zugangsdaten wie im Connection-String).

Soll RabbitMQ stattdessen Monitoring-Events der Engine empfangen, ist das ein anderer Anwendungsfall — siehe den RabbitMQ-Sink unter Monitoring.