NYSSR.NET / RESOURCES

Zustandsbehaftete Workflows koordinieren, ohne Aufrufer zu blockieren

Wie aktive nyssr.net-Dienste zustandsbehaftete Workflow-Komponenten erzeugen, asynchron Nachrichten austauschen und Arbeit über Knoten hinweg koordinieren.

Langlebige Jobs, Sessions und Workflows brauchen oft Zustand und Folgearbeit, ohne den Aufrufer zu blockieren. nyssr.net-Dienste sind aktive Komponenten: Sie halten Zustand, senden eigenständig Nachrichten und koordinieren Arbeit über das Netz.

nyssr.net-Dienste sind aktive Komponenten, keine passiven Request-Handler. Sie halten Zustand, senden eigenständig Nachrichten und koordinieren Arbeit über das Netz, ohne den Aufrufer zu blockieren.

Factories erzeugen Service-Instanzen

Eine Factory ist selbst ein Microservice. Fordert ein anderer Dienst eine Instanz an, erzeugt die Factory ein Target und verbindet es mit der Zieladresse des Owners. Owner und neuer Dienst können dann direkt kommunizieren.

Wird der Dienst nicht mehr gebraucht, beendet ihn der Owner mit einer Nachricht. Bricht die Kommunikation ab, kann die Instanz auch so konfiguriert werden, dass sie sich automatisch beendet.

Kernidee: Zustandsbehaftete Dienste lassen sich genau für die Lebensdauer einer Session, eines Jobs oder Workflows erzeugen.

Arbeits-Targets halten lange Aufgaben asynchron

Ein Request lässt sich nicht immer sofort beantworten. Statt zu blockieren, delegiert ein Dienst die Folgearbeit an ein temporäres Arbeits-Target:

  • Das Arbeits-Target führt die zusätzliche Kommunikation aus
  • Der ursprüngliche Request bleibt offen, während die Arbeit läuft
  • Das Ergebnis geht als Response zurück
  • Das Arbeits-Target endet, wenn seine Aufgabe abgeschlossen ist

Targets sind leichtgewichtig. Eine Job-Engine kann zehntausende davon für fokussierte Aufgaben erzeugen, etwa das Hashen von Dateien in Unterverzeichnissen.

Gut geeignet für zustandsbehaftete Workflows

Weil Targets leichtgewichtig und Nachrichten asynchron sind, kann ein Knoten viele gleichzeitige Aktivitäten koordinieren. Dienste können weitere Targets erzeugen, Notifications empfangen und auf Broadcasts reagieren, ohne einen zentralen Orchestrator.

Das macht aktive Microservices nützlich für Jobs, Sessions, Workflows, Dialoge und andere Prozesse, die Zustand über Zeit brauchen.

Betriebsmuster

  • Factories erzeugen und verwalten Service-Instanzen
  • Owners legen fest, wie lange eine Instanz lebt
  • Arbeits-Targets lagern die Folgekommunikation aus
  • Nachrichten verbinden die Teile ohne geteilten veränderlichen Zustand
  • Timer und Knoten-Monitoring räumen verwaiste Instanzen ab

Das Ergebnis ist ein Klein-Dienste-Modell, in dem komplexes Verhalten aus Kooperation entsteht statt aus großen blockierenden Komponenten.

Skalierung: Leichtgewichtige Targets ergänzen und Dienste über das Knoten-Mesh verteilen.

Resilienz: Unerreichbare Owners oder Knoten erkennen und Instanzen sicher beenden.

Integration: Gewöhnliche Nachrichten nutzen, um aktive Dienste mit dem Rest des Systems zu verbinden.