Temporal mit Claude Code: Resiliente Workflows 2026
Temporal Workflows: Activities, Signals, Queries, Timers, Child Workflows, Worker-Konfiguration —
Claude Code baut ausfallsichere Prozesse die nie verloren gehen.
📅 6. Mai 2026⏱ 11 min Lesezeit🔖 TypeScript & Temporal SDK
Distributed Systems scheitern. Netzwerke brechen ab, Datenbanken überlasten, externe APIs
antworten nicht. Klassische Worker-Queues (Bull, Celery, Sidekiq) verlieren bei Crashes ihren
gesamten In-Memory-State — jeder laufende Job wird zum Datenverlust-Kandidaten.
Temporal löst dieses Problem fundamental anders: Jeder Workflow-State wird
nach jeder ausgeführten Aktion persistent in einem Event-Log gespeichert. Crasht ein Worker,
startet ein anderer Worker exakt an der Stelle weiter wo der vorige aufgehört hat — ohne dass
der Entwickler einen einzigen Zeile Recovery-Code schreiben muss.
Mit Claude Code lassen sich Temporal-Workflows in Minuten implementieren:
Claude generiert die komplette TypeScript-Boilerplate, konfiguriert Retry-Policies und
erklärt automatisch wo Activities von Workflows getrennt werden müssen. Dieser Artikel zeigt
alle zentralen Konzepte mit echtem TypeScript-Code.
1. Temporal Grundlagen — Warum Temporal?
Temporal ist eine Open-Source-Workflow-Engine, die aus dem internen Cadence-Projekt bei Uber
entstanden ist. Das Kernprinzip: Durable Execution — Code läuft so, als würde
die Ausführung niemals unterbrochen, auch wenn die zugrundeliegende Infrastruktur ausfällt.
🔁
Automatisches Retry
Activities retried automatisch mit konfigurierbarem Backoff — kein try/catch-Spaghetti.
💾
Durable State
Workflow-State überlebt Crashes, Deploys und Restarts vollständig.
⏱
Lange Workflows
Workflows können Tage, Wochen oder Monate laufen — sleep(30 Tage) ist kein Problem.
🔍
Vollständiges Audit-Log
Jede Aktion, jedes Signal, jeder Timer ist persistent nachvollziehbar.
🌐
Polyglot
SDKs für TypeScript, Python, Go, Java — Workflows und Workers können in verschiedenen Sprachen sein.
📊
Web UI
Temporal UI zeigt alle laufenden und vergangenen Workflows mit vollständigem Event-History.
Workflow vs. Activity — Die wichtigste Unterscheidung
Aspekt
Workflow
Activity
Zweck
Orchestrierung / Koordination
Tatsächliche Arbeit / Seiteneffekte
Determinismus
MUSS deterministisch sein
Darf beliebig sein
I/O
KEIN direktes I/O erlaubt
HTTP, DB, Filesystem — alles OK
Retry
Kein Retry (State bleibt)
Automatisches Retry mit Policy
Laufzeit
Sekunden bis Jahre
Sekunden bis Stunden
Sleep
workflow.sleep() — dauerhaft
Normales async/await
Golden Rule: Niemals direktes I/O (fetch, fs, Math.random(), Date.now())
in einem Workflow. Alles was nicht-deterministisch ist, gehört in eine Activity.
Claude Code kennt diese Regel und weist automatisch darauf hin.
Lokaler Dev-Server
terminal
# Temporal Dev-Server starten (kein Docker nötig)
npx @temporalio/create-app my-temporal-app
# oder manuell installieren:
npm install @temporalio/workflow @temporalio/activity @temporalio/worker @temporalio/client
# Dev-Server starten
npx temporal server start-dev
# Web UI öffnen
open http://localhost:8233
2. Workflow Definition mit TypeScript
Temporal Workflows werden in TypeScript mit dem @temporalio/workflow-Package
definiert. Der entscheidende Punkt: Workflows laufen in einem isolierten, deterministischen
V8-Sandbox-Environment. Claude Code erzeugt die korrekte Trennung zwischen Workflow-Code
und Activity-Aufrufen automatisch.
WORKFLOW
Workflows orchestrieren den Ablauf. Sie rufen Activities auf (nie direkt I/O),
schlafen, warten auf Signals und geben ein Ergebnis zurück.
Beachte: sleep('2 days') ist ein echter dauerhafter Timer — der Worker-Prozess
kann währenddessen beliebig oft neu gestartet werden. Temporal weckt den Workflow nach exakt
48 Stunden wieder auf.
3. Activities — Echte Seiteneffekte
Activities sind normale async-Funktionen die beliebige Seiteneffekte ausführen dürfen:
HTTP-Requests, Datenbankoperationen, Dateisystem-Zugriffe, externe API-Calls. Das
Temporal-Runtime kümmert sich automatisch um Retry bei transientem Fehler.
ACTIVITY
Activities sind zustandslos und retryable. Bei langen Activities muss
heartbeat() regelmäßig aufgerufen werden — sonst erkennt Temporal
einen Crash nicht rechtzeitig.
Idempotenz ist Pflicht: Activities werden bei transientem Fehler automatisch
wiederholt. Operationen wie Zahlungsabbuchung müssen daher idempotent sein — z.B. über
einen idempotencyKey oder eine Upsert-Logik in der Datenbank.
4. Signals & Queries — Externe Kommunikation
Temporal ermöglicht bidirektionale Kommunikation mit laufenden Workflows.
Signals senden Events an einen Workflow (der Workflow muss auf sie
reagieren können), Queries lesen synchron den aktuellen Workflow-Zustand
aus — ohne den Workflow zu verändern.
SIGNAL
Asynchron. Ändert den Workflow-Zustand. Kann nicht abgelehnt werden (fire & forget).
Beispiel: "Zahlung eingegangen", "Bestellung stornieren".
QUERY
Synchron. Liest nur Zustand, ändert nichts. Sofortige Antwort.
Beispiel: "Was ist der aktuelle Status?", "Wie viele Items wurden verarbeitet?".
Ein typisches Pattern: Ein externer Webhook (z.B. Stripe Payment-Callback) sendet ein
Signal direkt an den laufenden Workflow. Claude Code generiert diesen Glue-Code
vollständig mit korrekter Fehlerbehandlung.
Temporal ermöglicht zwei mächtige Kompositionsmechanismen: workflow.sleep()
für dauerhafte zeitgesteuerte Pausen und Child Workflows für die
Aufteilung komplexer Prozesse in wiederverwendbare, isoliert testbare Einheiten.
TIMER
workflow.sleep() ist kein normales setTimeout. Der Timer läuft serverseitig
in Temporal. Der Worker-Prozess kann währenddessen gestoppt werden — der Workflow wird
nach exakt der angegebenen Zeit fortgesetzt.
Der Temporal Worker ist der Prozess der tatsächlich Workflows und Activities ausführt.
Worker pollen kontinuierlich die Temporal Task Queue und führen die zugewiesenen
Tasks aus. Mehrere Worker können parallel laufen — Temporal verteilt die Last automatisch.
WORKER
Ein Worker registriert Workflows und Activities bei Temporal und pollt dann seine
Task Queue. Horizontal skalierbar: einfach mehr Worker-Prozesse starten.
Temporal exportiert Prometheus-Metriken out-of-the-box. Wichtigste KPIs für
Production-Monitoring:
1
temporal_workflow_task_schedule_to_start_latency
Wartezeit bis ein Workflow-Task von einem Worker aufgenommen wird. Hoch = zu wenige Worker.
2
temporal_activity_schedule_to_start_latency
Wartezeit bis eine Activity gestartet wird. Korreliert direkt mit User-Wahrnehmung.
3
temporal_workflow_failed_total
Anzahl fehlgeschlagener Workflows (nach allen Retries). Alert wenn Rate steigt.
4
temporal_activity_execution_failed_total
Fehlgeschlagene Activity-Versuche. Normal wenn Retries aktiv, alarmierend wenn nonRetryable.
Determinismus-Fehler sind die häufigste Temporal-Falle: Wenn Workflow-Code
verändert wird während Workflows noch laufen, kann es zu History-Mismatch-Fehlern kommen.
Lösung: Versioned Workflows mit patched()-API oder neue Workflow-Definitionen
per Major-Version einführen.
Claude Code als Temporal-Entwicklungspartner
Claude Code versteht Temporals Determinismus-Regeln und den Unterschied zwischen
Workflow- und Activity-Code instinktiv. Typische Aufgaben die Claude Code in Minuten erledigt:
Workflow-Skeleton generieren aus einer Business-Anforderung in natürlicher Sprache
Activities extrahieren aus bestehendem Code der direkt I/O macht
Retry-Policies konfigurieren basierend auf Activity-Charakteristik (transient vs. permanent)
Signal & Query-Handler für komplexe State-Machines automatisch erzeugen
Child-Workflow-Topologien für hierarchische Business-Prozesse designen
Test-Suites mit Temporal Test Suite schreiben (Mock-Activities, deterministische Zeittests)
Migration-Strategies für Breaking Changes in laufenden Workflows entwickeln
Beispiel-Prompt für Claude Code:
"Implementiere einen Temporal-Workflow für einen SaaS-Onboarding-Prozess: User registriert sich →
Email-Verifikation (Timeout 48h) → Trial-Account anlegen → Willkommens-Email → nach 14 Tagen
Trial-Ablauf-Reminder → nach 30 Tagen Downgrade falls kein Upgrade. Activities und Workflow
trennen, nonRetryable Errors definieren."
Claude Code generiert daraus vollständig funktionierenden TypeScript-Code mit korrekter
Activity-Trennung, Timeout-Konfiguration, Signal-Handlern und sogar Unit-Tests mit der
Temporal Test Suite — in einem einzigen Prompt.