Skip to content
Agentmart
Submit a tool

temporal-workflows

Comprehensive guide for Temporal workflow orchestration patterns including activity design, error handling, and testing strategies.

Skill by yasinnerten

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/yasinnerten-temporal-workflows

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Comprehensive guide for Temporal workflow orchestration patterns including activity design, error handling, and testing strategies.

Use cases: design, testing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/temporal-workflows

What's inside

Skill name
temporal-workflows
Description
Comprehensive guide for Temporal workflow orchestration patterns including activity design, error handling, and testing strategies.
License
Apache-2.0
Metadata
category: backend-orchestration
Instructions
438 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Temporal Workflow Patterns

This skill provides comprehensive guidance for building robust Temporal workflows with OpenAI agents integration.

## Core Concepts

Temporal is a durable execution platform that orchestrates distributed systems through workflows, activities, and workers.

**Key Terminology:**
- **Workflow**: Definition of how tasks should be executed (idempotent, durable)
- **Activity**: Unit of work that can be retried, timed out, and scheduled
- **Worker**: Long-running process that polls for tasks and executes activities
- **Activity Task**: An instruction to an activity instance with inputs and a result
- **Workflow Execution**: Single run of a workflow with a unique ID

## Workflow Design Principles

### 1. Idempotency
Workflows must be idempotent - running the same workflow multiple times with the same inputs should produce the same result.

```python
@workflow.defn
class ProcessOrderWorkflow:
    @workflow.run
    async def run(self, order_id: str) -> OrderResult:
        # Check if already processed
        existing = await workflow.execute_activity(
            check_order_status,
            order_id,
            task_queue="order-processing"
        )

        if existing.processed:
            return OrderResult(
                status="already_processed",
                order_id=order_id
            )

        # Process the order
        result = await workflow.execute_activity(
            process_order,
            order_id,
            task_queue="order-processing"
        )

        return result
```

### 2. Deterministic Logic
Workflows should not depend on external state or nondeterministic operations.

**Good:**
```python
@workflow.defn
class GenerateReportWorkflow:
    @workflow.run
    async def run(self, date: datetime) -> Report:
        # Use inputs only, not external state
        data = await workflow.execute_activity(
            fetch_data,
            date,
            task_queue="report-generation"
        )
        return data
```

**Bad:**
```python
@workflow.defn
class GenerateReportWorkflow:
    @workflow.run
    async def run(self) -> Report:
        # Reading from global state - nondeterministic
        return global_data_store.get_latest()
```

### 3. Error Handling
Use Temporal's built-in retry mechanisms for transient failures.

```python
@activity.defn
async def call_openai_api(prompt: str) -> str:
    max_attempts = 3
    initial_interval = timedelta(seconds=1)
    backoff_coefficient = 2.0

    for attempt in range(max_attempts):
        try:
            response = client.chat.completions.create(
                model="gpt-4",
                messages=[{"role": "user", "content": prompt}]
            )
            return response.choices[0].message.content
        except RateLimitError as e:
            if attempt < max_attempts - 1:
                await asyncio.sleep(initial_interval * (backoff_coefficient ** attempt))
                continue
            raise
```

### 4. Signal Handling
Use signals for asynchronous communication and cancellation.

```python
from temporalio import workflow

class ProcessingWorkflow:
    @workflow.run
    async def run(self, data: str) -> None:
        # Set up signal handler
        query_handler = workflow.wait_condition(
            self.processing_query.set,
            timeout=timedelta(hours=24)
        )

        # Start activity
        await workflow.execute_activity(
            long_running_task,
            data,

From yasinnerten/temporal-openai-agents-sdk, Apache-2.0.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Feb 27, 2026 (8 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from yasinnerten

Cite this page

temporal-workflows skill. Agent Mart. https://agentmart.dev/skills/yasinnerten-temporal-workflows (last updated 2026-10-24)