Service-Choreographie
Dezentrales Koordinationsmodell für verteilte Dienste, bei dem einzelne Services Ablauflogik lokal steuern und Interaktionen ohne zentrale Kontrolle stattfinden.
Klassifikation
- KomplexitätHoch
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Inkonsistenzen bei unzureichender Kompensationsstrategie
- Versteckte Abhängigkeiten und versteckte Sequenzvoraussetzungen
- Übermäßiger Observability-Aufwand bei fehlender Toolunterstützung
- Schreibe idempotente Event-Handler zur sicheren Wiederholung
- Nutze klare, versionierte Event-Schemata und eine Registry
- Implementiere verteiltes Tracing zur Nachvollziehbarkeit
I/O & Ressourcen
- Explizite Event- oder API-Verträge
- Message-Broker oder Event-Infrastruktur
- Monitoring-, Tracing- und Versionierungswerkzeuge
- Entkoppelte, autonome Services mit definierten Interaktionsverträgen
- Events als Integrationsartefakte
- Verteilte Fehler- und Kompensationspfade
Beschreibung
Service-Choreographie beschreibt ein dezentrales Modell für die Koordination verteilter Dienste, in dem jede Komponente Interaktionsregeln lokal durchsetzt. Im Gegensatz zur Orchestrierung gibt es keine zentrale Steuerinstanz; Verantwortung und Fehlerbehandlung werden verteilt. Sie eignet sich besonders für lose gekoppelte, domänenspezifische Microservice-Architekturen.
✔Vorteile
- Geringere Zentralabhängigkeit erhöht Ausfallsicherheit einzelner Komponenten
- Bessere Teamautonomie durch lokale Entscheidungshoheit
- Skalierbarkeit einzelner Reaktionspfade ohne zentralen Engpass
✖Limitationen
- Erhöhte Komplexität bei Fehlerbehandlung und Kompensation
- Schwierigeres End-to-End-Testing durch verteilte Abläufe
- Erfordert strikte Event- und Vertragsdisziplin zwischen Teams
Trade-offs
Metriken
- Durchsatz pro Event-Topic
Misst die Anzahl verarbeiteter Events pro Zeitintervall für ein Topic.
- End-to-End-Latenz
Zeit vom Auslösen eines Events bis zur finalen Verarbeitung und Bestätigung.
- Fehler- und Kompensationsrate
Anteil von Transaktionen, die Kompensation oder manuelle Eingriffe erfordern.
Beispiele & Implementierungen
Event-getriebene Bestellkette
Ein Online-Shop verteilt Bestell-, Zahlungs- und Versandlogik auf eigenständige Services, die über Events choreographiert werden.
Mikroservice-Saga als Choreographie
Eine Saga-Implementierung verteilt Kompensationsschritte auf betroffene Services, die gegenseitig auf Ereignisse reagieren.
IoT-Integration mit dezentraler Steuerung
Edge-Komponenten und Cloud-Services koordinieren Aktionen über Events ohne zentralen Orchestrator.
Implementierungsschritte
Analyse Domänengrenzen und Identifikation relevanter Events.
Definieren von Event- und API-Verträgen sowie Versionierungsregeln.
Einführen der Event-Infrastruktur, Observability und Kompensationskonventionen.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unstrukturierte Events ohne Registry erhöhen Integrationskosten
- Fehlende Trace-Propagation behindert Debugging
- Ad-hoc-Kompatibilitätsfixes statt sauberer Versionierung
Bekannte Engpässe
Beispiele für Missbrauch
- Einsatz bei stark transaktionalen Workloads ohne Kompensation
- Fehlende Versionierung führt zu massiven Inkompatibilitäten
- Unzureichendes Monitoring, sodass Fehler nicht erkennbar sind
Typische Fallen
- Unterschätzung des Observability-Aufwands
- Implizite Sequenzannahmen zwischen unabhängigen Services
- Zu späte Einführung von Kompensationslogik
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Notwendigkeit kompatibler Event-Formate
- • Netzwerklatenz und asynchrone Verzögerungen
- • Regulatorische Anforderungen an Transaktionssicherheit