Wann man dazu greift
- Die Eingabe natürlich segmentierbar ist und Aufgaben unabhängig sind, um Latenz zu reduzieren (Sectioning).
- Robustheit wichtiger ist als einzelne Ausführungskosten (Voting).
/pattern/parallelization/
Unabhängige Teilaufgaben werden parallel verarbeitet und entweder zusammengeführt (Sectioning) oder das beste Ergebnis wird über einen Aggregator ausgewählt (Voting).
Wann man dazu greift
Wann es nach hinten losgeht
Die Abwägung
Niedrigere Latenz und höhere Robustheit werden gegen erhöhte Integrationskomplexität und mehrfache Ausführungskosten erkauft.
Unabhängige Teilaufgaben laufen gleichzeitig und werden dann zusammengeführt.
Die Aufteilung erzeugt Chunks, die impliziten Kontext teilen. Worker produzieren inkompatible Teilergebnisse, die nicht zusammengeführt werden können.
Lösung · Unabhängigkeit vor der Aufteilung validieren. Wenn Chunks Zustand teilen, stattdessen eine Pipeline verwenden.
Ein Worker gibt eine Liste zurück, ein anderer ein Dict. Der Join-Schritt stürzt ab oder verwirft stillschweigend Daten.
Lösung · Ein Schema-Vertrag für jede Worker-Ausgabe definieren. Nicht konforme Antworten vor dem Zusammenführen ablehnen.
Patterns, Frameworks und Seiten durchsuchen.