Orchestrierung & Choreografie
Orchestrierung bündelt Ablaufentscheidungen in einem Koordinator. Choreografie verteilt Reaktionen auf Ereignisse über beteiligte Bausteine.
- KoordinatorZentrale Ablaufentscheidung.
- ChoreografieReaktionen verteilen den Ablauf.
- AblaufübersichtSichtbarkeit gegen Verteilung.
Einordnung
Warum das wichtig ist
Wo Ablaufwissen liegt, bestimmt, wer bei Änderungen und Fehlern gefragt ist. Liegt es verstreut, ist der Gesamtablauf schwer zu sehen. Kompensationen eines verteilten Ablaufs behandelt die Saga.
Dieser Baustein vergleicht zwei Formen der Ablaufsteuerung. Für Kompensationen eines verteilten Ablaufs siehe Saga.
Auf einen Blick · Zentrale Steuerung oder Choreografie
Ablaufwissen für Reservierung und Zahlung
Variante: Lager und Zahlung sind unabhängige Dienste. Das Team vergleicht eine Bestellorchestrierung mit einer ereignisgetriebenen Choreografie; der Zahlungsanbieter bleibt extern.
So liest du das Bild
- Koordinator Bei Orchestrierung trägt die Bestellung die Markierung „Ablaufwissen sitzt hier“.
- Choreografie Bei Choreografie reagiert Zahlung auf Reserviert und Lager auf ZahlungAbgelehnt.
- Ablaufübersicht Die Kennzahl Ablaufübersicht: im Koordinator sichtbar gegenüber über Ereignisverträge verteilt.
- trägt AblaufBestellungKoordinator: Ablaufwissen sitzt hier
- beteiligtLagerreserviert auf Befehl
- beteiligtZahlungzahlt auf Befehl
im Koordinator sichtbarAblaufübersicht
Nutzen & Grenzen
Hilft, wenn
- Ein Ablauf mit mehreren Schritten und Fehlerzuständen erhält durch Orchestrierung eine zentral nachvollziehbare Reihenfolge.
- Ein Prozesskoordinator speichert Fortschritt und nächsten Schritt für eine verbindliche Statusauskunft.
- Autonome Reaktionen der Teilnehmer verteilen die Steuerung über Choreografie.
Grenzen
- Ein zentraler Koordinator wird zusätzliche Laufzeit- und Änderungsabhängigkeit; seine Verfügbarkeit und Zustandsmigration müssen gesichert sein.
- Verteilte Choreografie macht den Gesamtfortschritt schwer sichtbar; Korrelation und Statusaggregation sind nötig.
- Orchestrierung ersetzt keine globale Atomarität; Saga und Partielle Ausfälle ordnen Kompensation und unklare Ausgänge.
In der Praxis
- Zeichne zulässige Schritte, Übergänge und Verantwortliche des Ablaufs auf. Eine zentrale Steuerung speichert den Fortgang und entscheidet anhand expliziter Antworten.
- Mache Zustandsübergänge dauerhaft und wiederaufnehmbar. Nach Neustart darf der Prozess weder einen bestätigten Schritt vergessen noch einen Schritt unkontrolliert doppelt ausführen.
- Wähle Orchestrierung oder Choreografie nach Änderungs- und Diagnosebedarf. Saga beschreibt verteilte lokale Schritte; Partielle Ausfälle klärt unbekannte Ergebnisse.
Ausführliche Erklärung lesen
Orchestrierung hält den Prozessfortschritt an einer steuernden Stelle fest und wählt den nächsten Schritt anhand von Antworten und Fehlerzuständen. Choreografie verteilt Entscheidungen auf Teilnehmer, die auf Ereignisse reagieren.
Eine zentrale Steuerung macht Status und Reihenfolge leichter abfragbar, führt aber zu einer zusätzlichen Abhängigkeit. Verteilte Reaktionen reduzieren zentrale Steuerung, erschweren jedoch die Übersicht des Gesamtpfads. Beide Formen brauchen dauerhafte Fortschritts- und Fehlerzustände.
Saga ordnet verteilte lokale Änderungen und mögliche Kompensationen; Partielle Ausfälle erklären, warum ein Prozessstatus unbekannte Ergebnisse festhalten muss.
Selbst prüfen
Teste dich in drei Stufen
AblesenIm Bild nachsehen
Wer reagiert bei Choreografie auf ZahlungAbgelehnt?
Lösung mit Begründung ansehen
Das Lager. Es gibt die Reservierung selbst frei.
AnwendenAuf eine neue Lage übertragen
Die Reihenfolge soll sich ändern: zuerst Zahlung, dann Reservierung. Wo ist der Aufwand kleiner?
Lösung mit Begründung ansehen
Bei Orchestrierung: Der Koordinator wird geändert. Bei Choreografie müssen mehrere Reaktionen abgestimmt werden.
BewertenEine Alternative abwägen
Das Team will Choreografie statt Orchestrierung wählen. Wie wägst du ab?
Lösung mit Begründung ansehen
Choreografie koppelt Dienste lose über Ereignisse, macht den Gesamtablauf aber schwerer sichtbar. Orchestrierung bündelt das Ablaufwissen an einer Stelle, gibt dem Koordinator aber mehr Verantwortung.
Vertiefen
Diese Bausteine führen die Gedanken dieser Seite weiter.
Quellen
- microservices.io · Saga (öffnet in neuem Tab)Erklärt lokale Transaktionen und fachliche Kompensationen.
- Microsoft · Saga (öffnet in neuem Tab)Vergleicht Choreografie und Orchestrierung bei verteilten Transaktionen.
- Martin Fowler · What do you mean by Event-Driven? (öffnet in neuem Tab)Unterscheidet Ereignisbenachrichtigung, Zustandsübertragung und Event Sourcing.