name: temporal-developer description: This skill should be used when the user asks to "create a Temporal workflow", "write a Temporal activity", "debug stuck workflow", "fix non-determinism error", "Temporal Python", "Temporal TypeScript", "Temporal Go", "Temporal Golang", "workflow replay", "activity timeout", "signal workflow", "query workflow", "worker not starting", "activity keeps retrying", "Temporal heartbeat", "continue-as-new", "child workflow", "saga pattern", "workflow versioning", "durable execution", "reliable distributed systems", or mentions Temporal SDK development. version: 0.1.0
Skill: temporal-developer
Overview
Temporal is a durable execution platform that makes workflows survive failures automatically. This skill provides guidance for building Temporal applications in Python, TypeScript, and Go.
Core Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Temporal Cluster │
│ ┌─────────────────┐ ┌─────────────────┐ ┌────────────────┐ │
│ │ Event History │ │ Task Queues │ │ Visibility │ │
│ │ (Durable Log) │ │ (Work Router) │ │ (Search) │ │
│ └─────────────────┘ └─────────────────┘ └────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
▲
│ Poll / Complete
▼
┌─────────────────────────────────────────────────────────────────┐
│ Worker │
│ ┌─────────────────────────┐ ┌──────────────────────────────┐ │
│ │ Workflow Definitions │ │ Activity Implementations │ │
│ │ (Deterministic) │ │ (Non-deterministic OK) │ │
│ └─────────────────────────┘ └──────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Components:
- Workflows - Durable, deterministic functions that orchestrate activities
- Activities - Non-deterministic operations (API calls, I/O) that can fail and retry
- Workers - Long-running processes that poll task queues and execute code
- Task Queues - Named queues connecting clients to workers
History Replay: Why Determinism Matters
Temporal achieves durability through history replay:
- Initial Execution - Worker runs workflow, generates Commands, stored as Events in history
- Recovery - On restart/failure, Worker re-executes workflow from beginning
- Matching - SDK compares generated Commands against stored Events
- Restoration - Uses stored Activity results instead of re-executing
If Commands don't match Events = Non-determinism Error = Workflow blocked
| Workflow Code | Command | Event |
|---|---|---|
| Execute activity | ScheduleActivityTask |
ActivityTaskScheduled |
| Sleep/timer | StartTimer |
TimerStarted |
| Child workflow | StartChildWorkflowExecution |
ChildWorkflowExecutionStarted |
See references/core/determinism.md for detailed explanation.
Getting Started
Ensure Temporal CLI is installed
Check if temporal CLI is installed. If not, follow these instructions:
macOS
brew install temporal
Linux
Check your machine's architecture and download the appropriate archive:
Once you've downloaded the file, extract the downloaded archive and add the temporal binary to your PATH by copying it to a directory like /usr/local/bin
Windows
Check your machine's architecture and download the appropriate archive:
Once you've downloaded the file, extract the downloaded archive and add the temporal.exe binary to your PATH.
Read All Relevant References
- First, read the getting started guide for the language you are working in:
- Python -> read
references/python/python.md - TypeScript -> read
references/typescript/typescript.md - Go -> read
references/go/go.md
- Python -> read
- Second, read appropriate
coreand language-specific references for the task at hand.
Primary References
references/core/determinism.md- Why determinism matters, replay mechanics, basic concepts of activities- Language-specific info at
references/{your_language}/determinism.md
- Language-specific info at
references/core/patterns.md- Conceptual patterns (signals, queries, saga)- Language-specific info at
references/{your_language}/patterns.md
- Language-specific info at
references/core/gotchas.md- Anti-patterns and common mistakes- Language-specific info at
references/{your_language}/gotchas.md
- Language-specific info at
references/core/versioning.md- Versioning strategies and concepts - how to safely change workflow code while workflows are running- Language-specific info at
references/{your_language}/versioning.md
- Language-specific info at
references/core/troubleshooting.md- Decision trees, recovery proceduresreferences/core/error-reference.md- Common error types, workflow status referencereferences/core/interactive-workflows.md- Testing signals, updates, queriesreferences/core/dev-management.md- Dev cycle & management of server and workersreferences/core/ai-patterns.md- AI/LLM pattern concepts- Language-specific info at
references/{your_language}/ai-patterns.md, if available. Currently Python only.
- Language-specific info at
Additional Topics
references/{your_language}/observability.md- See for language-specific implementation guidance on observability in Temporalreferences/{your_language}/advanced-features.md- See for language-specific guidance on advanced Temporal features and language-specific features