temporal
Temporal Durable Execution
Comprehensive assistance for the Temporal durable execution platform: CLI operations, SDK development across Go/TypeScript/Python/Java, workflow design, and architectural decisions.
Triggers
Use this skill when the user mentions: "temporal", "durable execution", "workflow orchestration", "temporal cli", "temporal sdk", "temporal worker", "temporal activity", "temporal workflow", "temporal schedule", "temporal signal", "temporal query".
Quick Start
Local Development Server
# Install CLI
brew install temporal # macOS
curl -sSf https://temporal.download/cli | sh # Linux
# Start local dev server (with Web UI at localhost:8233)
temporal server start-dev
# Start with persistent storage
temporal server start-dev --db-filename temporal.db
First Workflow (TypeScript example)
npm init -y
npm install @temporalio/client @temporalio/worker @temporalio/workflow @temporalio/activity
Common Tasks by Intent
| Developer wants to... | Action |
|---|---|
| Start a workflow | temporal workflow start --type MyWorkflow --task-queue my-queue --input '{"key":"val"}' |
| Check workflow status | temporal workflow describe -w <workflow-id> |
| View event history | temporal workflow show -w <workflow-id> |
| Cancel a workflow | temporal workflow cancel -w <workflow-id> |
| Send a signal | temporal workflow signal -w <workflow-id> --name signal-name --input '{"data":true}' |
| Query workflow state | temporal workflow query -w <workflow-id> --name query-name |
| List running workflows | temporal workflow list |
| Debug stuck workflow | Check history with temporal workflow show, look for pending activities |
| Set up scheduled runs | temporal schedule create --schedule-id my-sched --cron '0 * * * *' ... |
| Test workflows | Use SDK test utilities with time-skipping and activity mocking |
When to Use Temporal
Good fit:
- Multi-step processes that must complete reliably (order processing, onboarding)
- Saga patterns across microservices (distributed transactions)
- Long-running workflows (days, weeks, months)
- Scheduled/cron jobs with complex logic
- Human-in-the-loop approval workflows
Not a good fit:
- Simple request/response APIs (use plain HTTP)
- Sub-millisecond latency requirements (Temporal adds overhead)
- Trivial fire-and-forget background jobs (use a simple queue)
- Pure data streaming (use Kafka/Flink)
Reference Documents
For deep dives, consult these references:
| Reference | Content |
|---|---|
| CLI.md | Complete CLI command reference: installation, server, workflows, schedules, operators |
| SDK-PATTERNS.md | Cross-language SDK patterns: Go, TypeScript, Python, Java side-by-side |
| CONCEPTS.md | Architecture, core concepts, design patterns, deployment, comparisons |
Troubleshooting
Determinism Violations
Workflows must be deterministic. Common violations:
- Using
Date.now(),Math.random(), or system time directly — useworkflow.now()or side effects - Making network calls from workflow code — move to activities
- Using non-deterministic data structures (e.g., iterating over unordered maps)
- Changing workflow logic without proper versioning
Stuck Workflows
- Check event history:
temporal workflow show -w <id> - Look for
ActivityTaskScheduledwithout correspondingActivityTaskCompleted - Verify workers are running and polling the correct task queue
- Check activity timeouts — may need
HeartbeatTimeoutfor long activities - Check for deadlocked signals/queries
Timeout Issues
Temporal has four timeout types:
- WorkflowExecutionTimeout: Max time for entire workflow (including retries)
- WorkflowRunTimeout: Max time for a single workflow run
- ScheduleToCloseTimeout: Max time from activity scheduled to completed
- StartToCloseTimeout: Max time from activity started to completed
If activities time out unexpectedly, ensure StartToCloseTimeout is generous enough and add heartbeating for long-running activities.
Worker Not Picking Up Tasks
- Verify task queue name matches between workflow starter and worker
- Check that the worker is registered with the correct workflow/activity types
- Ensure the Temporal server address is correct (
TEMPORAL_ADDRESS) - Look at worker logs for connection errors
Workflow
When helping with Temporal:
- Identify the task: CLI operation, SDK code, architecture decision, or debugging
- Check the language: For SDK questions, determine Go/TypeScript/Python/Java
- Consult references: Use the reference docs for detailed patterns and commands
- Verify determinism: For workflow code, ensure deterministic execution rules are followed
- Test guidance: Recommend SDK test utilities, replay testing, and local dev server
More from rube-de/cc-skills
doppler
>-
33council
Consult external AI council (Gemini, Codex, Qwen, GLM-5.1) for thorough reviews and consensus-driven decisions. Use ONLY when explicitly invoked with "/council" or when user says "consult the council", "invoke council", or "council review". Do NOT auto-trigger on generic phrases like "thorough review".
2update
>-
1perf
>-
1dlc
>-
1next
>-
1