Workflows und Aktivitäten richtig schneiden
In Temporal besteht ein Ablauf aus einem Workflow, der die Reihenfolge steuert, und Aktivitäten, die etwas bewirken – etwa ein anderes System aufrufen. Der Workflow-Code muss deterministisch sein: Bei einer Wiederaufnahme wird er anhand des gespeicherten Verlaufs erneut durchlaufen und muss dabei zu denselben Entscheidungen kommen.
Zufallswerte, die Systemzeit, Netzwerkaufrufe und Datenbankzugriffe gehören deshalb nicht direkt in den Workflow, sondern in Aktivitäten oder in die dafür vorgesehenen Funktionen von Temporal. Aktivitäten wiederum sollten so gebaut sein, dass eine Wiederholung nichts doppelt auslöst.
Versionierung von Anfang an
Abläufe dauern oft Tage, Wochen oder Monate – länger als die Zeit zwischen zwei Releases. Wird der Workflow-Code geändert, während noch Abläufe laufen, müssen diese nach ihrer bisherigen Logik weiterlaufen können.
Temporal bietet dafür Mechanismen, etwa Verzweigungen im Code für alte und neue Abläufe oder Worker, die nur eine bestimmte Version ausführen. Welcher Weg passt, sollte vor dem ersten produktiven Ablauf feststehen – und Teil der Tests sein.
Testen wie übrige Software
Workflows und Aktivitäten lassen sich automatisiert testen, auch mit verkürzter Zeit für Wartezeiten und Fristen.
Zusätzlich lohnt sich ein Test, der gespeicherte Verläufe gegen neuen Code abspielt. So fällt vor dem Release auf, wenn eine Änderung laufende Abläufe stören würde.
Selbst betreiben oder Temporal Cloud?
Die Geschäftslogik läuft in beiden Fällen in Ihren Workern, also in Ihrer Umgebung. Unterschiedlich ist, wer den Temporal-Server betreibt, der den Stand der Abläufe speichert.
| Kriterium | Selbst betrieben | Temporal Cloud |
|---|---|---|
| Betrieb des Servers | Ihr Team: Datenbank, Updates, Überwachung | Temporal Technologies |
| Ort der Ablaufdaten | in Ihrer Umgebung | beim Dienst, in der gewählten Region |
| Kosten | Infrastruktur und Betriebsaufwand | nutzungsabhängige Gebühren |
| Worker mit Ihrer Geschäftslogik | in Ihrer Umgebung | in Ihrer Umgebung |
Für die Wahl zählen auch Datenschutz und Vorgaben zum Datenort, denn Eingaben und Ergebnisse von Abläufen enthalten oft Personendaten. Temporal erlaubt es, diese Nutzdaten vor dem Versand zu verschlüsseln, sodass der Server sie nicht im Klartext sieht.
Was im Betrieb zählt
Wer Temporal selbst betreibt, sollte diese Punkte von Anfang an regeln:
- eine Datenbank für den Stand der Abläufe, etwa PostgreSQL, mit Sicherung
- getrennte Namespaces je Anwendung oder Umgebung
- Überwachung von Warteschlangen, Fehlern und hängenden Abläufen
- ein erprobtes Vorgehen für Upgrades von Server und Bibliotheken
- Regeln, wie lange abgeschlossene Abläufe aufbewahrt werden
Klein beginnen
Bewährt hat sich ein schrittweiser Einstieg mit einem Ablauf, der spürbaren Nutzen bringt:
- 1einen Ablauf mit spürbarem Nutzen wählen
- 2Architektur und Versionierung festlegen
- 3umsetzen und eine Zeit lang neben dem bisherigen Weg laufen lassen
- 4den Betrieb einrichten und an das Team übergeben