Skip to Content
EngineErweiterungenHTTP-Messagebus

HTTP-Messagebus

Die HTTP-Messagebus-Extension (@5minds/processcube_engine_http_signal_extension) transportiert Engine-Signale und -Nachrichten über HTTP — in beide Richtungen: Outbound (Push an fremde HTTP-Endpunkte mit Retry) und Inbound (eigene HTTP-Routes, über die externe Systeme Signale/Messages einliefern).

Architektur

Registrierung über onLoad, Anbindung über onBeforeResuming/onReady. Der HttpAdapter implementiert IMessageBusAdapter mit zwei Pfaden:

  • Outbound — Push an eine Ziel-URL mit exponentiellem Backoff-Retry. Die URL unterstützt Platzhalter: {signalName}, {messageName}, {engineId}, {correlationId}.
  • Inbound — registriert Routes unter <basePath>/signals/:name und <basePath>/messages/:name; eingehende Requests werden optional per Auth-Header geprüft und an die Engine dispatcht.

Einrichten

Im Engine-Image enthalten. Aktiv, sobald mindestens eine der Richtungen eingeschaltet ist (HTTP_MESSAGEBUS_OUT_ENABLED=true oder HTTP_MESSAGEBUS_IN_ENABLED=true). Outbound benötigt zusätzlich eine Ziel-URL.

Konfiguration

Outbound (Push)

Env-VariableDefaultBeschreibung
HTTP_MESSAGEBUS_OUT_ENABLEDfalseBoolean, optional. Outbound-Requests aktivieren
HTTP_MESSAGEBUS_OUT_ENDPOINT_URLString, Pflicht (wenn Outbound). Ziel-URL; Platzhalter {signalName}, {messageName}, {engineId}, {correlationId}
HTTP_MESSAGEBUS_OUT_HEADERS{}JSON, optional. Zusätzliche HTTP-Header als JSON-String
HTTP_MESSAGEBUS_OUT_SIGNAL_NAME_HEADERString, optional. Eigener Header-Name für den Signal-Namen
HTTP_MESSAGEBUS_OUT_RETRY_MAX3Integer, optional. Maximale Anzahl Wiederholungen
HTTP_MESSAGEBUS_OUT_RETRY_BASE_DELAY_MS500Integer, optional. Basis-Verzögerung (ms)
HTTP_MESSAGEBUS_OUT_RETRY_FACTOR2Float, optional. Exponentieller Backoff-Faktor
HTTP_MESSAGEBUS_OUT_RETRY_MAX_DELAY_MS5000Integer, optional. Maximale Verzögerung zwischen Versuchen (ms)
HTTP_MESSAGEBUS_OUT_RETRY_JITTERtrueBoolean, optional. Zufallsanteil auf das Retry-Delay
HTTP_MESSAGEBUS_OUT_TIMEOUT_MS30000Integer, optional. Request-Timeout (ms)
HTTP_MESSAGEBUS_OUT_FAIL_ON_ERRORfalseBoolean, optional. Bei Fehler Exception werfen (true) statt nur loggen

Inbound (Webhook)

Env-VariableDefaultBeschreibung
HTTP_MESSAGEBUS_IN_ENABLEDfalseBoolean, optional. Inbound-Routes aktivieren
HTTP_MESSAGEBUS_IN_BASE_PATH/messagebusString, optional. Basis-Pfad der Inbound-Routes
HTTP_MESSAGEBUS_IN_AUTH_HEADERString, optional. Header-Name für die Authentifizierung
HTTP_MESSAGEBUS_IN_AUTH_SECRETString, optional. Erwarteter Wert des Auth-Headers

Verwendung

Outbound — Engine pusht Signale an einen Webhook:

HTTP_MESSAGEBUS_OUT_ENABLED=true HTTP_MESSAGEBUS_OUT_ENDPOINT_URL=https://example.com/events/{signalName} HTTP_MESSAGEBUS_OUT_HEADERS={"Authorization":"Bearer <token>"} HTTP_MESSAGEBUS_OUT_RETRY_MAX=5

Inbound — externe Systeme liefern Signale/Messages ein:

HTTP_MESSAGEBUS_IN_ENABLED=true HTTP_MESSAGEBUS_IN_BASE_PATH=/webhooks HTTP_MESSAGEBUS_IN_AUTH_HEADER=X-Auth-Token HTTP_MESSAGEBUS_IN_AUTH_SECRET=<secret>

Routes: POST /webhooks/signals/:name und POST /webhooks/messages/:name.

Outbound und Inbound sind unabhängig — du kannst nur Push, nur Webhook oder beides aktivieren.