Dokumentation: Flowy-Dienste
Flowy-Dienste
Flowy basiert auf zwei getrennten Diensten sowie einer relationalen Datenbank für seine Metadaten.
- Admin-Dienst: stellt die API-Endpunkte bereit, über die Flowy-Objekte erstellt und bearbeitet werden und über die auf die Logs zugegriffen wird. Wird auch für die Benutzer- und Berechtigungsverwaltung verwendet.
- Verarbeitungsdienst: führt die Prozesse aus bzw. stellt die Endpunkte für deren Trigger bereit. Verwaltet die Credentials sowie das Polling für Schnittstellen.
Beide Dienste können nach Bedarf skaliert werden. Es wird dringend empfohlen, einen softwarebasierten Load Balancer zu verwenden, wie ihn z. B. AWS mit dem Application Load Balancer bereitstellt. Die SSL-Terminierung sollte ebenfalls von einer WAF und/oder einem Load Balancer übernommen werden.
Details zur Konfiguration der Dienste finden Sie unter Flowy-Konfiguration. Die richtige Vorgehensweise beim Skalieren ist außerdem Teil der Flowy-Schulungen.
Für das Monitoring empfehlen wir den Einsatz von Prometheus bzw. Grafana. Ihre Verwendung ist im Abschnitt Fehlerbehebung beschrieben.
Interne Jobs
Flowy verwendet interne Jobs, um viele Aufgaben zu erledigen. Diese Jobs werden als Teil des Verarbeitungsdienstes ausgeführt.
- Clean captcha (Admin): für die Captcha-Funktion wird ein Bild generiert und die zugehörigen Werte werden sicher gespeichert. Die Captcha-Tabelle muss regelmäßig bereinigt werden, um die Effizienz und Leistung des Systems zu erhalten.
- Clean history (Admin): für jede Ressource wird in der History-Tabelle ein Änderungsverlauf (einschließlich der Aktionen CREATE, EDIT, DELETE) geführt. Veraltete Einträge müssen regelmäßig entfernt werden.
- Clean Up (Verarbeitung): während der Ausführung eines Prozesses werden Logs gesammelt, darunter Events, Prozessausführungen und Step-Logs. Dieser Job entfernt:
- Events mit Status wie
NEW,ON_HOLD,SUCCESSFUL,PROCESS_INACTIVEundTIMEOUT. - Prozessausführungen, die zu diesen Events gehören.
- Step-Logs, die mit den betreffenden Events verknüpft sind.
- Events mit Status wie
- Clean up errors (Verarbeitung): während ein Prozess abläuft, werden laufend Logs gesammelt, darunter Events, Prozessausführungen und Step-Logs. Dieser Job entfernt:
- Events mit dem Status FAILED.
- Prozessausführungen, die zu diesen Events gehören.
- Step-Logs, die mit den betreffenden Events verknüpft sind.
- Credentials sync (Verarbeitung): dieser Job synchronisiert den Verbindungspool für Datenbanken (MongoDB und JDBC) und E-Mail-Sender. Er entfernt und schließt veraltete Verbindungen und initialisiert aktive Credentials.
- Cron triggers sync (Verarbeitung): dieser Job plant aktive Cron-Jobs ein, entfernt deaktivierte Cron-Jobs und plant Jobs mit geänderten Cron-Ausdrücken neu ein, damit der neue Zeitplan gilt.
- Fix Execution State (Verarbeitung): gelegentlich bleiben Events im Status
in progresshängen und werden dadurch nicht korrekt ausgeführt. Dieser Job behebt das Problem, indem er Events, die zu lange in Bearbeitung sind, auf den Statusfailedsetzt. - Instance Heartbeat: wird auch auf dem Admin-Dienst ausgeführt.
- Messaging trigger (Verarbeitung): dieser Job startet für jeden aktiven Trigger einen Thread (Consumer) und öffnet eine Verbindung bzw. einen Channel. Wird ein Trigger deaktiviert, wird die Verbindung bzw. der Channel geschlossen und der Thread beendet.
- Plugins sync (Verarbeitung): dieser Job synchronisiert die Plugins, damit sie reibungslos eingebunden sind.
- Process events (Verarbeitung): dieser Job wählt Events mit dem Status
newaus und übergibt sie zur Ausführung. - Rest trigger sync (Verarbeitung): dieser Job hält die Trigger synchron, indem er deaktivierte Trigger aus der Verarbeitung entfernt und neu aktivierte Trigger einbindet.
- Settings sync (Verarbeitung): synchronisiert Einstellungen, sobald sie geändert, aktiviert oder deaktiviert werden, damit die Konfiguration stets aktuell ist.
- Storage Clean Up (Verarbeitung): entfernt abgelaufene Storage-Einträge.

