MusterKapitel II · Kommunikation · Baustein 3 von 9

Asynchrone Kommunikation

Asynchrone Kommunikation entkoppelt die Annahme einer Aufgabe von ihrer späteren Verarbeitung. Ein fachlicher Status macht den Zwischenstand beobachtbar.

  1. AnnahmeAuftrag ist gespeichert, nicht erledigt.
  2. StatusMacht den Zwischenstand sichtbar.
  3. WiederholungFehler gezielt erneut versuchen.

Einordnung

Warum das wichtig ist

Wartet der Checkout auf jede Folgeaufgabe, hängt er an deren Dauer und Fehlern. Asynchrone Verarbeitung entkoppelt das, braucht aber sichtbare Zustände, damit niemand raten muss. Die Verteilung an mehrere Empfänger ist ein eigener Baustein.

Dieser Baustein erklärt zeitlich entkoppelte Verarbeitung. Für Verteilung an mehrere Empfänger siehe Queues, Pub/Sub & Streams.

Auf einen Blick · Nachricht über eine Queue

Der Sender legt eine Nachricht in die Queue und arbeitet sofort weiter; der Empfänger holt sie später ab.
Shop-Beispiel · Zustände und Übergänge

Zustände eines Rechnungsauftrags

Nach bestätigter Bestellung nimmt Rechnung einen Auftrag an und erstellt den Beleg später. Der Checkout muss nicht auf das fertige PDF warten.

So liest du das Bild

  1. Annahme Der Zustand angenommen: Auftrag mit Bestell-ID gespeichert.
  2. Status Die vier Zustände angenommen, in Bearbeitung, erstellt und Klärung nötig.
  3. Wiederholung Der Übergang „gezielt wiederholen“ von Klärung nötig zurück zu in Bearbeitung.

Breites Diagramm · bei Bedarf seitlich verschieben

Die Übergänge zeigen, was nach Annahme, Verarbeitung und Fehler sichtbar bleibt.
Diagramm als Text lesen
  • angenommen: Auftrag mit Bestell-ID gespeichert
  • in Bearbeitung: Beleg wird erstellt
  • erstellt: Rechnungsnummer vorhanden
  • Klärung nötig: Fehler und erneuter Versuch sichtbar
  • angenommen → in Bearbeitung: Worker übernimmt
  • in Bearbeitung → erstellt: Beleg gespeichert
  • in Bearbeitung → Klärung nötig: Erstellung scheitert
  • Klärung nötig → in Bearbeitung: gezielt wiederholen
Die Übergänge zeigen, was nach Annahme, Verarbeitung und Fehler sichtbar bleibt.

Nutzen & Grenzen

Hilft, wenn

  • Arbeit, die länger als ein offener Aufruf dauert, kann nach ihrer Annahme asynchron abgeschlossen werden.
  • Eine Nachricht puffert Lastspitzen, bis Verarbeitungskapazität frei wird.
  • Unabhängige Empfänger arbeiten mit Nachrichten entkoppelt von Laufzeit und Veröffentlichungszyklus des Erzeugers.

Grenzen

  • Annahme eines Auftrags bedeutet noch keinen fachlichen Abschluss; das Ergebnis braucht eigene Status und einen Rückweg.
  • Bei dauerhaft langsamen Empfängern wächst die Queue; ohne Rückstandsalarm und Grenzen fällt das erst spät auf.
  • Wiederholung erzeugt Duplikate und kann Reihenfolge ändern; siehe Idempotenz und Transactional Outbox.

In der Praxis

  1. Definiere Zustände für Annahme, Verarbeitung, Abschluss und Fehler. Der Aufrufer muss wissen, welche Rückmeldung sofort gilt und wie ein späteres Ergebnis erreichbar wird.
  2. Sichere Nachricht und fachliche Wirkung gegen Absturz und Wiederholung ab. Lege fest, wann ein Empfänger bestätigt und wie dauerhaft fehlerhafte Arbeit isoliert wird.
  3. Beobachte Rückstand, Alter und Wiederaufnahme je Empfänger. Queues, Pub/Sub & Streams ordnet Verteilung; Transactional Outbox behandelt dauerhafte Versandabsicht.
  4. Ausfall und verbleibende Kopplung prüfen. Pausiere gedanklich den Rechnungsworker und beschreibe Annahme, Rückstand und Wiederaufnahme. Prüfe zusätzlich Schema, Nettobetrag oder Bruttobetrag und Reihenfolge, damit spätere Verarbeitung dieselbe fachliche Wirkung behält.
Ausführliche Erklärung lesen

Asynchrone Kommunikation trennt Annahme und spätere Verarbeitung. Eine Nachricht oder ein Auftrag wird dauerhaft gespeichert; der ursprüngliche Aufrufer kann weiterarbeiten, während ein Empfänger die Arbeit übernimmt.

Annahme, fachlicher Abschluss und Rückmeldung sind getrennte Zustände. Warteschlangen puffern Last, erzeugen aber Rückstände, Verzögerungen und Wiederholungen. Fortschritt, Fehlerpfad und Wiederaufnahme müssen daher beobachtbar und für den Aufrufer verständlich sein.

Pub/Sub und Streams bestimmen Empfängerkreis und Wiederlesemöglichkeit; Transactional Outbox sichert den Übergang zwischen lokalem Commit und Veröffentlichung.

Ein pausierter Rechnungsworker lässt Bestellannahmen weiterlaufen, sofern die Aufträge dauerhaft gespeichert werden und der Rückstand beherrschbar bleibt. Schema, fachliche Bedeutung und gewünschte Reihenfolge bleiben gemeinsame Annahmen. Kopplung hilft, diese Dimensionen neben dem Zeitpunkt der Verarbeitung einzeln zu bewerten.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Welchen Status sieht der Kundenservice direkt nach Annahme des Auftrags?

    Lösung mit Begründung ansehen

    Angenommen. Der Beleg ist damit beauftragt, aber noch nicht als erstellt bestätigt.

  2. AnwendenAuf eine neue Lage übertragen

    Die Belegerstellung scheitert. Welchen Zustand zeigt der Kundenservice, und wie geht es weiter?

    Lösung mit Begründung ansehen

    Klärung nötig, mit sichtbarem Fehler. Danach lässt sich gezielt wiederholen, und der Auftrag geht zurück in Bearbeitung.

  3. BewertenEine Alternative abwägen

    Soll der Checkout auf das fertige PDF warten? Wie wägst du ab?

    Lösung mit Begründung ansehen

    Dann sieht der Kunde sofort das Ergebnis, aber der Checkout hängt an der Belegerstellung. Asynchron endet der Checkout früher; dafür müssen Zustände und Wiederholung bewusst gestaltet werden.

Vertiefen

Diese optionalen Vertiefungen ergänzen das Lernziel dieser Seite.

Claim Check

Bei Claim Check liegt eine große Nutzlast, etwa eine Produktdatei, separat in einem Objektspeicher; die Nachricht enthält eine Referenz und die nötigen Metadaten. So bleibt die Queue-Nachricht klein. Vertraglich festgelegt werden müssen Zugriffsschutz, Gültigkeitsdauer und Löschung. Die Datei muss mindestens so lange verfügbar sein wie mögliche Verzögerungen und Wiederholungen; abgelaufene Referenzen und verwaiste Dateien brauchen einen erkennbaren Bereinigungsweg.

Zum AusprobierenClaim Check absichern. Lege für eine große Produktdatei Referenzformat, Berechtigung, Aufbewahrungsfrist und Löschzeitpunkt fest. Prüfe, dass die Datei während Rückstand und Wiederholungen erreichbar bleibt und dass abgelaufene Referenzen sowie verwaiste Dateien erkannt und bereinigt werden.