TEKO Schweizerische FachschuleEAI IntegrationslaborTheorie · Kommunikationsmodelle

Theorie 03 · Zeit und Kopplung

Synchron oder
asynchron?

Die richtige Frage lautet nicht „Was ist moderner?“, sondern: Muss der Aufrufer jetzt eine Antwort erhalten, und was geschieht, wenn ein Beteiligter ausfällt?

Request/ResponseEventsQueueKonsistenzca. 18 min
Lernziele
Du kannst synchrone und asynchrone Kommunikation unterscheiden, zeitliche Kopplung sowie Benutzererwartung beurteilen, hybride Abläufe modellieren und für Handels- und Spitalprozesse eine begründete Wahl treffen.
Definition

Zwei Arten, mit Zeit umzugehen

Bei synchroner Kommunikation sendet ein Aufrufer eine Anfrage und wartet im selben Interaktionszusammenhang auf die Antwort. Beide Seiten müssen während dieser Zeit erreichbar sein. Das passt zu kurzen Abfragen, unmittelbarer Validierung und Situationen, in denen die nächste Aktion das Resultat benötigt. Ein Browser fragt beispielsweise einen Preis ab und zeigt ihn direkt an.

Bei asynchroner Kommunikation wird Arbeit angenommen, gespeichert oder als Nachricht veröffentlicht. Der Absender muss nicht warten, bis die fachliche Verarbeitung abgeschlossen ist. Das Ergebnis kommt später über einen Status, eine Benachrichtigung oder ein weiteres Ereignis. Eine Queue puffert Last und überbrückt vorübergehende Ausfälle. Sie macht die Verarbeitung jedoch nicht automatisch korrekt.

Synchron und asynchron beschreiben nicht zwingend einen ganzen Geschäftsprozess. Ein Ablauf kann mehrere Modelle kombinieren. Microsoft Forms bestätigt beispielsweise die Übermittlung, während ein nachgelagerter Workflow später startet. Innerhalb dieses Workflows kann eine Logic App synchron eine API aufrufen. Die gesamte Reise vom Formular bis zum ERP ist deshalb nicht automatisch synchron, nur weil ein HTTP-Schritt synchron arbeitet.

Zeichnung

Warten oder Arbeit übergeben

Vergleich einer synchronen und einer asynchronen Zeitlinie Oben wartet ein Client vom Senden der Anfrage bis zur Antwort des Service. Unten bestätigt eine Queue die Annahme sofort, hält die Nachricht und liefert sie später an einen Worker, während der Client weiterarbeiten kann. Synchron: beide Seiten teilen denselben Wartezeitraum Client Service Request Response Client wartet Asynchron: die Queue übernimmt und puffert Sender Queue haltbar gespeichert Worker angenommen spätere Zustellung
Zeitliche Kopplung: Oben hängt die Antwortzeit von allen beteiligten Stationen ab. Unten bestätigt die Queue nur die sichere Annahme; ein fachliches Ergebnis folgt später.
Synchron

Direktes Feedback mit gemeinsamem Ausfallrisiko

Ein synchroner Aufruf ist leicht zu verstehen: Anfrage, Verarbeitung, Antwort. Er eignet sich für eine Produktverfügbarkeit, eine Berechtigungsprüfung oder das Laden von Studienmetadaten. Der Aufrufer kennt Erfolg oder Ablehnung unmittelbar und kann seine Benutzeroberfläche entsprechend steuern.

Die Kehrseite ist zeitliche Kopplung. Ruft eine Logic App ein Gateway, einen .NET-Service und Odoo nacheinander auf, addieren sich die Laufzeiten. Jeder Hop besitzt ein Timeout und kann ausfallen. Nach einem Timeout bei einem schreibenden Request ist sogar unklar, ob das Ziel die Aktion noch abgeschlossen hat. Ein blindes Wiederholen kann einen zweiten Auftrag erzeugen. Latenzbudgets, Idempotency-Keys und verständliche Fehlerantworten gehören deshalb zum synchronen Design.

Eine lange synchrone Kette verschiebt die schwächste Verfügbarkeit auf den gesamten Prozess. Fünf Systeme mit jeweils hoher Verfügbarkeit ergeben nicht automatisch eine ebenso hoch verfügbare Gesamtkette. Zudem blockieren wartende Verbindungen Ressourcen. Synchrone Verarbeitung sollte deshalb kurz, begrenzt und fachlich notwendig sein.

Asynchron

Entkopplung braucht einen neuen Vertrag

Eine Queue kann eine Nachricht haltbar speichern, bis ein Consumer sie verarbeitet. Der Sender und der Empfänger müssen nicht gleichzeitig verfügbar sein. Lastspitzen werden geglättet: Wenn in kurzer Zeit viele Shop-Bestellungen oder DICOM-Studien eintreffen, arbeitet der Consumer sie in seinem Tempo ab. Das verbessert Robustheit, erzeugt aber eventuelle Konsistenz. Der Zielzustand ist nicht sofort überall sichtbar.

Der Vertrag muss nun zusätzliche Fragen beantworten: Was bedeutet „angenommen“? Wie fragt der Benutzer den Status ab? Wie lange darf die Verarbeitung dauern? Was geschieht bei einem fachlichen Fehler? Darf die Reihenfolge variieren? Können Nachrichten mehrfach eintreffen? Eine Queue löst diese Fragen nicht, sie macht sie sichtbar.

Ein Event beschreibt eine bereits eingetretene Tatsache, etwa ImagingStudyAvailable. Ein Command fordert eine konkrete Aktion, etwa AnonymizeStudy. Ereignisse sind in der Vergangenheit formuliert und können mehrere interessierte Konsumenten haben. Commands besitzen typischerweise einen verantwortlichen Empfänger. Diese Unterscheidung erleichtert Verantwortlichkeit und Benennung.

Beispiele

Gleiche Technik, andere Dringlichkeit

Handel

Die Anzeige „18 Stück verfügbar“ benötigt eine schnelle synchrone Abfrage. Die Übernahme einer abgeschlossenen Shop-Bestellung ins ERP kann dagegen asynchron erfolgen, wenn der Kunde sofort eine Shop-Bestätigung erhält und später über den Verarbeitungsstatus informiert wird. Bei einem ERP-Ausfall bleibt die Bestellung in der Queue.

Spital

Das Öffnen vorhandener Metadaten in Orthanc ist synchron. Die Übertragung einer neuen, synthetischen Bildstudie in ein Forschungsarchiv kann asynchron ablaufen. Ein Event referenziert die Studie; ein Worker anonymisiert und überträgt sie später. Ein klinischer Notfallprozess hätte strengere Zeit- und Eskalationsanforderungen und darf nicht ungeprüft dasselbe Muster übernehmen.

Metapher

Telefon und Spital-Rohrpost

Die Metapher: Synchron ist wie ein Telefongespräch: Beide Personen müssen gleichzeitig verfügbar sein, und die anrufende Person wartet auf die Antwort. Asynchron ist wie eine Rohrpostsendung im Spital: Eine beschriftete, quittierte Sendung wird in ein Transportsystem gegeben, zwischengelagert und später von der zuständigen Stelle verarbeitet.

Die Grenze: Eine technische Queue kann Nachrichten duplizieren, nach Priorität oder Partition verteilen und über lange Zeit speichern. Eine Rohrpost garantiert weder automatisch die fachliche Richtigkeit des Inhalts noch bildet sie parallele Consumer exakt ab. Auch bedeutet „angenommen“ bei Software nicht „erfolgreich verarbeitet“.

Gegenbeispiele

Das falsche Modell am falschen Ort

Ein Checkout wartet synchron mehrere Minuten auf ERP, DMS, E-Mail und Statistik. Fällt nur die Statistik aus, sieht der Kunde trotzdem einen Fehler und bestellt erneut. Umgekehrt liefert eine asynchrone API für eine einfache Passwortprüfung nur „202 Accepted“ und irgendwann eine Nachricht. Die Benutzeroberfläche kann nicht sinnvoll fortfahren. Weder „alles synchron“ noch „alles über Events“ ist eine Architekturregel.

Entscheiden

Praktische Regeln

  1. Nutze synchron, wenn die nächste Benutzer- oder Systemaktion das Ergebnis sofort benötigt.
  2. Nutze asynchron bei langer Verarbeitung, Lastspitzen oder wenn Zielsysteme zeitweise ausfallen dürfen.
  3. Definiere bei asynchroner Annahme Status, Frist, Benachrichtigung und Fehlerweg.
  4. Halte synchrone Ketten kurz und lege pro Hop ein begründetes Timeout fest.
  5. Plane bei schreibenden Wiederholungen eine fachliche Idempotenzstrategie.
  6. Unterscheide den gesamten Geschäftsprozess von einzelnen synchronen oder asynchronen Hops.
  7. Beurteile Datenkritikalität und Dringlichkeit: Ein Forschungsworkflow ist kein klinischer Notfallpfad.
Kontrolle

Fragen zum Verständnis

  1. Was bedeutet zeitliche Kopplung und welche Folgen hat sie?
  2. Warum ist „202 Accepted“ noch kein fachlicher Erfolg?
  3. Welche Teile eines Forms-/Logic-Apps-Prozesses können synchron sein, obwohl der Gesamtprozess es nicht ist?
  4. Warum passt eine Bestandsabfrage eher zu synchroner, eine Forschungsübertragung eher zu asynchroner Kommunikation?
  5. Was unterscheidet Event und Command?
  6. Welche neuen Pflichten entstehen durch eine Queue?
Merksatz
Synchron optimiert unmittelbares Wissen, asynchron entkoppelt Zeit und Last. Die richtige Wahl folgt aus Benutzererwartung, Fehlerfolgen und fachlicher Frist.