Stateful Processing – zustandsbehaftete Verarbeitung – bezeichnet eine Verarbeitungsweise, bei der das System Informationen über vergangene Vorgänge, Interaktionen oder Schritte speichert und bei der Verarbeitung zukünftiger Vorgänge berücksichtigt. Das System erinnert sich: Es kennt den bisherigen Verlauf, den aktuellen Status und den gespeicherten Kontext eines Vorgangs – und nutzt dieses Wissen, um die nächste Aktion korrekt auszuführen.
Stateful Processing ist notwendig, wenn ein Vorgang sich über mehrere Schritte oder mehrere Zeitpunkte erstreckt und ein späterer Schritt vom Ergebnis eines früheren abhängt. Ein mehrstufiger Genehmigungsprozess, eine mehrtägige Kundeninteraktion oder ein langer Auftragsabwicklungsprozess sind typische Beispiele: Jeder Schritt baut auf dem vorherigen auf, und der Zustand muss über die gesamte Prozessdauer erhalten bleiben.
Stateless vs. Stateful: direkter Vergleich
Stateless
- Keine Erinnerung zwischen Verarbeitungen
- Jede Anfrage ist vollständig autark
- Einfach zu skalieren
- Hohe Fehlertoleranz
- Kein State-Management-Aufwand
- Ideal für: API-Calls, Webhooks, Transformationen
Stateful
- Speichert Zustand zwischen Verarbeitungen
- Folgeschritte nutzen vorherige Ergebnisse
- Skalierung komplexer (State-Koordination)
- State-Verlust bei Ausfall riskant
- State Management zwingend erforderlich
- Ideal für: Genehmigungen, Checkouts, Kampagnen
Typischer Ablauf eines stateful Workflows
Beispiel: mehrstufiger Genehmigungsworkflow
Schritt 1Antrag eingereicht → State: {status: „eingereicht“, antrag_id: 4471, eingereicht_von: „anna.müller“, zeitpunkt: „2024-03-15 09:12“}
Schritt 2Erstprüfung bestanden → State aktualisiert: {status: „erstprüfung_ok“, geprüft_von: „k.schmidt“, zeitpunkt: „2024-03-15 11:34“}
WartenWarte auf CFO-Freigabe → Reminder nach 24h → State unverändert bis Aktion
Schritt 3CFO genehmigt → State: {status: „genehmigt“, genehmigt_von: „cfo.weber“, zeitpunkt: „2024-03-16 08:55“} → Buchung ausgelöst
Herausforderungen des stateful Processings
- State-Persistenz: Der Zustand muss dauerhaft und zuverlässig gespeichert sein – ein Neustart darf keinen State-Verlust verursachen
- State-Konsistenz: In verteilten Systemen müssen alle Komponenten denselben aktuellen Zustand sehen – Race Conditions und veraltete State-Snapshots müssen verhindert werden
- Skalierungskomplexität: Im Gegensatz zu stateless Verarbeitung können nicht beliebig viele Worker-Instanzen denselben State gleichzeitig bearbeiten – Koordination ist erforderlich
- State-Bereinigung: Abgeschlossene Vorgänge müssen irgendwann aus dem State-Speicher entfernt werden – sonst wächst der Speicher unbegrenzt
- Timeout und Ablauf: Was passiert, wenn ein stateful Prozess auf einen menschlichen Eingriff wartet, der nie kommt? Timeout-Regeln und Eskalationslogiken müssen definiert sein
Praxisbeispiel
Ein E-Commerce-Checkout-Prozess ist stateful: Schritt 1 – Kunde legt Artikel in den Warenkorb. State wird gespeichert: Warenkorb-ID, Artikel, Mengen, Zeitstempel. Schritt 2 – Kunde gibt Lieferadresse ein. State erweitert: Adressdaten hinzugefügt. Schritt 3 – Kunde wählt Zahlungsmethode. State erweitert: Zahlungsmethode hinzugefügt. Schritt 4 – Kauf abgeschlossen. State: alle Daten vollständig, Bestellung ausgelöst. Wenn der Kunde nach Schritt 2 den Browser schließt und 10 Minuten später zurückkommt, ist der Warenkorb noch da – dank gespeichertem State. Wenn er 24 Stunden wartet, erhält er eine automatische Erinnerung. Nach 7 Tagen ohne Abschluss wird der Warenkorb-State gelöscht und der reservierte Lagerbestand freigegeben. Stateful Processing mit vollständigem Lifecycle-Management.




