Eigenständiger BegriffMusterKapitel II · Kommunikation · Baustein 23 von 23

API Composition

API Composition verbindet getrennte Datenquellen im Lesepfad.

  1. ComposerZerlegt die Anfrage und verbindet Antworten ohne Besitzübernahme.
  2. ZeitbudgetBegrenzt Fan-out und entscheidet über Abbruch oder Teilergebnis.
  3. AktualitätZeigt, zu welchem Zeitpunkt jedes kombinierte Feld gilt.

Einordnung

Warum das wichtig ist

Sie erhält Datenbesitz, macht aber Latenz und Teilfehler zu Eigenschaften jeder Abfrage.

Das Beispiel startet als interne Modulkomposition. Verteilte Aufrufe sind hypothetisch; aktuell bleiben sieben Module und eine gemeinsame Datenbank.

Shop-Beispiel · Zuordnung

Abfragestrategien für die Auftragsansicht

Der aktuelle Shop besitzt sieben Module in einem modularen Monolithen und eine gemeinsame Datenbank. Der Kundenservice benötigt eine Auftragsansicht aus Bestellung, Zahlung und Versand. Ein interner Composer ruft die drei Modul-APIs parallel auf, begrenzt jede Teilanfrage und kennzeichnet einen fehlenden Versandstatus als vorübergehend unbekannt. Erst bei einer hypothetischen späteren Dienstaufteilung entstehen Netzwerkfehler; Messungen zu p95-Antwortzeit, Fan-out und Teilergebnissen entscheiden dann, ob eine materialisierte Lesesicht sinnvoller wird.

So liest du das Bild

  1. Composer Antwortfelder auf Besitzer abbilden
  2. Zeitbudget Teilaufrufe parallel mit Deadline
  3. Aktualität Feldweise Aktualität ausweisen
Abfragestrategien für die Auftragsansicht
VergleichStrategieStärkePreis
API CompositionQuellen bleiben maßgeblichAktuelle Daten bei erfolgreichem AufrufFan-out und Teilfehler je Anfrage
Materialisierte LesesichtEine schnelle AbfrageExplizit beobachtbare ProjektionVerzögerung, Aufbau und Korrektur
ClientkompositionClient bestimmt DarstellungWeniger ServerlogikViele Roundtrips und duplizierte Fehlerlogik
Laufzeit, Aktualität und Pflegeaufwand verschieben sich je Strategie.

Nutzen & Grenzen

Hilft, wenn

  • Wenige Quellen und überschaubare Abfragen brauchen Daten zur Anfragezeit.
  • Teilergebnisse lassen sich fachlich klar als unbekannt oder veraltet kennzeichnen.
  • Eine Übergangslösung soll getrennten Datenbesitz erhalten, bevor eine Projektion gerechtfertigt ist.

Grenzen

  • Die langsamste Quelle und Wiederholungen bestimmen die Gesamtantwort und können Last vervielfachen.
  • Mehrstufige Joins und große Ergebnismengen machen Laufzeitkomposition teuer und unvorhersehbar.
  • Der Composer darf keine zweite Quelle fachlicher Wahrheit oder versteckte Schreibschnittstelle werden.

In der Praxis

  1. Baue die Auftragsübersicht aus Bestellstatus und Versandstatus auf. Notiere pro Teilabfrage Eigentümer, Zeitbudget und Verhalten bei einem fehlenden Ergebnis.
  2. Verzögere den Versandaufruf und miss die Gesamtlatenz der zusammengesetzten Antwort. Prüfe, ob Teilresultate angezeigt werden dürfen oder die Ansicht geschlossen fehlschlägt.
  3. Vergleiche Laufzeitkomposition mit einem gepflegten Lesemodell für häufige Abfragen. Beziehe Aktualität, Betriebsabhängigkeiten und Änderungsaufwand in die Wahl ein.
Ausführliche Erklärung lesen

Ein Composer zerlegt eine Abfrage, ruft die Besitzer der benötigten Daten parallel oder abhängig voneinander auf und verbindet Antworten über stabile Schlüssel. Er besitzt die kombinierte Darstellung, während Fachregeln und Schreibzugriffe bei den Quellen bleiben.

Jeder Laufzeitaufruf verbraucht Antwortzeit und fügt einen Ausfallpfad hinzu. Der Antwortvertrag muss deshalb Deadline, fehlende Teilantworten, Caching und sichtbare Aktualität pro Feld festlegen.

CQRS kann eine vorbereitete Lesesicht liefern, wenn Fan-out oder Antwortzeit gegen Laufzeitkomposition sprechen. API-Verträge sichern Form und Bedeutung der Quellantworten.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Wer besitzt die kombinierten Fachdaten?

    Lösung mit Begründung ansehen

    Die Quellmodule; der Composer besitzt nur die Antwortdarstellung.

  2. AnwendenAuf eine neue Lage übertragen

    Wie behandelt die Auftragsansicht fehlenden Versandstatus?

    Lösung mit Begründung ansehen

    Sie liefert verfügbare Daten und kennzeichnet Versand innerhalb des Budgets als unbekannt.

  3. BewertenEine Alternative abwägen

    Wann spricht mehr für eine Lesesicht?

    Lösung mit Begründung ansehen

    Bei hohem Fan-out, strikter Antwortzeit oder wiederkehrenden komplexen Joins.

Weiter im Lernpfad

Damit hast du Kommunikation & APIs durchlaufen. Weiter geht es mit Verteilte Systeme.