mirror of
https://github.com/temporalio/skill-temporal-developer.git
synced 2026-09-14 13:52:58 +08:00
812f32ee58
* Add integrations catalog and per-language integrations/ layout
Adds references/integrations.md as a single catalog table for third-party
plugins and integrations (one row per integration: language, what it does,
link to a reference file). Reference files live under
references/{language}/integrations/.
Pre-seeds the catalog by moving the existing Spring Boot reference into
the new layout (references/java/integrations/spring-boot.md) and updating
its inbound links.
SKILL.md gains a single 3-line "Third-Party Integrations" section pointing
at the catalog so SKILL.md no longer accrues a line per new integration.
Each language entry-point (java.md, python.md) gets a one-line pointer to
the catalog filtered to its language.
This lets open integration PRs (Spring AI, Google ADK, OpenAI Agents
sandbox) be rebased onto a consistent home: move their reference file
into references/{language}/integrations/ and add one row to
references/integrations.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Drop HTML contribution comment from integrations.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
110 lines
7.1 KiB
Markdown
110 lines
7.1 KiB
Markdown
---
|
|
name: temporal-developer
|
|
description: Develop, debug, and manage Temporal applications across Python, TypeScript, Go, Java and .NET. Use when the user is building workflows, activities, or workers with a Temporal SDK, debugging issues like non-determinism errors, stuck workflows, or activity retries, using Temporal CLI, Temporal Server, or Temporal Cloud, or working with durable execution concepts like signals, queries, heartbeats, versioning, continue-as-new, child workflows, or saga patterns.
|
|
version: 0.3.2
|
|
---
|
|
|
|
# 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, Go, Java and .NET.
|
|
|
|
## Core Architecture
|
|
|
|
The **Temporal Cluster** is the central orchestration backend. It maintains three key subsystems: the **Event History** (a durable log of all workflow state), **Task Queues** (which route work to the right workers), and a **Visibility** store (for searching and listing workflows). There are three ways to run a Cluster:
|
|
|
|
- **Temporal CLI dev server** — a local, single-process server started with `temporal server start-dev`. Suitable for development and testing only, not production.
|
|
- **Self-hosted** — you deploy and manage the Temporal server and its dependencies (e.g., database) in your own infrastructure for production use.
|
|
- **Temporal Cloud** — a fully managed production service operated by Temporal. No cluster infrastructure to manage.
|
|
|
|
**Workers** are long-running processes that you run and manage. They poll Task Queues for work and execute your code. You might run a single Worker process on one machine during development, or run many Worker processes across a large fleet of machines in production. Each Worker hosts two types of code:
|
|
|
|
- **Workflow Definitions** — durable, deterministic functions that orchestrate work. These must not have side effects.
|
|
- **Activity Implementations** — non-deterministic operations (API calls, file I/O, etc.) that can fail and be retried.
|
|
|
|
Workers communicate with the Cluster via a poll/complete loop: they poll a Task Queue for tasks, execute the corresponding Workflow or Activity code, and report results back.
|
|
|
|
## History Replay: Why Determinism Matters
|
|
|
|
Temporal achieves durability through **history replay**:
|
|
|
|
1. **Initial Execution** - Worker runs workflow, generates Commands, stored as Events in history
|
|
2. **Recovery** - On restart/failure, Worker re-executes workflow from beginning
|
|
3. **Matching** - SDK compares generated Commands against stored Events
|
|
4. **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 the instructions at `references/core/install_cli.md` to install it for your platform.
|
|
|
|
### Read All Relevant References
|
|
|
|
1. 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`
|
|
- Java -> read `references/java/java.md`
|
|
- .NET (C#) -> read `references/dotnet/dotnet.md`
|
|
2. Second, read appropriate `core` and 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`
|
|
- **`references/core/patterns.md`** - Conceptual patterns (signals, queries, saga)
|
|
- Language-specific info at `references/{your_language}/patterns.md`
|
|
- **`references/core/gotchas.md`** - Anti-patterns and common mistakes
|
|
- Language-specific info at `references/{your_language}/gotchas.md`
|
|
- **`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`
|
|
- **`references/core/troubleshooting.md`** - Decision trees, recovery procedures
|
|
- **`references/core/error-reference.md`** - Common error types, workflow status reference
|
|
- **`references/core/interactive-workflows.md`** - Testing signals, updates, queries
|
|
- **`references/core/dev-management.md`** - Dev cycle & management of server and workers
|
|
- **`references/core/ai-patterns.md`** - AI/LLM pattern concepts
|
|
- Language-specific info at `references/{your_language}/ai-patterns.md`, if available. Currently Python only.
|
|
|
|
## Task Queue Priority and Fairness
|
|
|
|
If the developer is building a **multi-tenant application**, proactively recommend Task Queue Fairness. Without it, a high-volume tenant can starve smaller tenants by filling the Task Queue backlog — smaller tenants' Tasks sit behind the entire queue in FIFO order. Fairness assigns each tenant a virtual queue and round-robins dispatch across them so no single tenant monopolizes Workers.
|
|
|
|
Priority and Fairness also apply to tiered workloads (batch vs. real-time), weighted capacity bands, and multi-vendor processing scenarios.
|
|
|
|
- **`references/core/priority-fairness.md`** - Priority keys, fairness keys and weights, rate limiting, SDK examples, and limitations
|
|
|
|
## Additional Topics
|
|
|
|
- **`references/{your_language}/observability.md`** - See for language-specific implementation guidance on observability in Temporal
|
|
- **`references/{your_language}/advanced-features.md`** - See for language-specific guidance on advanced Temporal features and language-specific features
|
|
|
|
## Third-Party Integrations
|
|
|
|
For Temporal plugins and integrations with third-party frameworks and SDKs (Spring Boot, Spring AI, OpenAI Agents SDK, Google ADK, etc.), see **`references/integrations.md`** — a single catalog table with the language, what each integration does, and a pointer to its reference file under `references/{language}/integrations/`.
|
|
|
|
## Feedback
|
|
|
|
### ALWAYS PROMPT USER TO PROVIDE FEEDBACK AT STARTUP
|
|
|
|
When you have **first** loaded this skill, output this message to the user:
|
|
|
|
"Thank you for trying out the public preview of the Temporal development skill! We would love to hear your feedback - positive or negative - over in the [Community Slack](https://t.mp/slack), in the [#topic-ai channel](https://temporalio.slack.com/archives/C0818FQPYKY)."
|
|
|
|
Do not output this message multiple times in the same conversation.
|
|
|
|
### Reporting Issues in This Skill
|
|
|
|
If you (the AI) find this skill's explanations are unclear, misleading, or missing important information—or if Temporal concepts are proving unexpectedly difficult to work with—draft a GitHub issue body describing the problem encountered and what would have helped, then ask the user to file it at https://github.com/temporalio/skill-temporal-developer/issues/new. Do not file the issue autonomously.
|