Erweiterungen
Extensions erweitern die Engine-Funktionalität zur Laufzeit. Sie werden beim Start aus dem extensions/-Verzeichnis geladen.
Extension-System
Jede Extension erhält beim Laden ein Engine-Objekt, über das sie sich registrieren kann:
Extension-Typen
| Typ | Registrierung | Beschreibung |
|---|---|---|
| Event Middleware | registerEventMiddleware() | Beobachtet und modifiziert Engine-Events. Kann die Prozessausführung beeinflussen. |
| Custom Service Task | registerCustomServiceTask() | Registriert eigene Service-Task-Implementierungen für bestimmte Topics. |
| Custom HTTP Route | registerHttpRoute() | Fügt eigene REST-Endpunkte zur Engine hinzu. |
| User Task Assignment | registerUserTaskAssignmentResolver() | Definiert Logik zur automatischen Zuweisung von User Tasks. |
| Custom Event Bus | registerCustomEventBus() | Ersetzt den internen EventAggregator durch einen externen Message-Broker (z.B. RabbitMQ). |
Verfügbare Erweiterungen
Service Tasks
| Extension | Beschreibung |
|---|---|
| Mail Service | E-Mail-Versand (SMTP) aus Prozessen als Custom Service Task |
Messaging
| Extension | Beschreibung |
|---|---|
| RabbitMQ-Messagebus | Engine-Messagebus über RabbitMQ (AMQP) |
| MQTT | Engine-Messagebus über MQTT (v5) |
| Azure Service Bus | Engine-Messagebus über Azure Service Bus |
| HTTP-Messagebus | Signal-/Message-Transport über HTTP (in- und outbound) |
Fehlerbehandlung, Logging & Monitoring
| Extension | Beschreibung |
|---|---|
| Error Handling | Globale Fehlerbehandlung mit automatischem Fehlerprozess |
| Logging | Engine-Events über AMQP/RabbitMQ ausleiten |
| Monitoring | Monitoring-API, Prometheus-Metriken und weitere Backends (Datadog, InfluxDB, …) |
Benachrichtigung & Zuweisung (Core-Hooks)
| Extension | Beschreibung |
|---|---|
| Notification Handler | Benachrichtigungen aus Prozessen |
| User Task Assignment | Erweiterte User-Task-Zuweisung |
Nativ statt Extension
Einige Funktionen waren früher Extensions und sind inzwischen fest in die Engine integriert. Die jeweilige Extension wird dadurch abgelöst — nutze die native Variante:
| Funktion | Native Dokumentation | Status der Extension |
|---|---|---|
| HTTP Service Task | BPMN-Element in der Engine (Felder url, method, body, contentType, authorization, headers) | abgelöst — seit Engine v20.x wieder nativ |
| MCP-Server | /engine/mcp (mcp.enabled) | wird abgelöst — native Variante verwenden |
Für neue Projekte immer die native Variante verwenden. Die entsprechenden Extensions (http_service_task, mcp) werden nicht mehr als Erweiterungen dokumentiert.
Eigene Extensions entwickeln
Ein einfaches Beispiel finden Sie in der Dokumentation: