---
title: "Temporal Python Pro: review, role & definition · Undominated.ai"
canonical: https://undominated.ai/agents/wshobson-temporal-python-pro/
description: "Implements durable workflows on the Temporal Python SDK — deterministic workflow code, activity heartbeats and retry policies, the three worker execution patterns, saga compensation and testing strategies for long-running processes."
---

# Temporal Python Pro: review, role & definition · Undominated.ai

> Implements durable workflows on the Temporal Python SDK — deterministic workflow code, activity heartbeats and retry policies, the three worker execution patterns, saga compensation and testing strategies for long-running processes.

[← Explore all agents](/agents/)

FRAMEWORK DEVELOPMENT / wshobson

# Temporal Python Pro

Implements durable workflows on the Temporal Python SDK — deterministic workflow code, activity heartbeats and retry policies, the three worker execution patterns, saga compensation and testing strategies for long-running processes.

 [Use this definition ↓](#setup)[Original source ↗](https://github.com/wshobson/agents/blob/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/plugins/backend-development/agents/temporal-python-pro.md)

SOURCE REVIEW

 Reviewed 2026-10-07
 Evidence 3 linked sources
 Publisher wshobson
 Licence [MIT ↗](https://github.com/wshobson/agents/blob/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/LICENSE)
 Revision 4236bb91f839
 [Read what was—and wasn’t—checked ↓](#review)

“Master Temporal workflow orchestration with Python SDK. Implements durable workflows, saga patterns, and distributed transactions. Covers async/await, testing strategies, and production deployment. Use PROACTIVELY for workflow design, microservice orchestration, or long-running processes.”

 [wshobson · upstream description ↗](https://github.com/wshobson/agents/blob/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/plugins/backend-development/agents/temporal-python-pro.md) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - The three worker execution patterns (async activities, sync multithreaded, sync multiprocess) are matched to workload types, with the stated anti-pattern that blocking the async event loop turns async programs into serial execution.
- Determinism is treated as a workflow correctness requirement — workflow-safe time operations, signal and query handlers, and non-retryable ApplicationError semantics rather than generic orchestration advice.

### A good fit for

 - Implementing saga-pattern distributed transactions and long-running processes on Temporal with the Python SDK.
- Production worker configuration: heartbeats for long activities, retry policies, graceful shutdown and cancellation handling.

### Weigh up before choosing

 - A builder persona, not a reviewer; beyond its testing-strategy section it has no verification gate on what it produces.
- Cites docs.temporal.io as its source but pins no SDK version; Temporal’s Python API surface moves between releases.
- Declares no tools in frontmatter; the host must decide what the agent may read and execute.
- Selects the inherit model alias; the effective model depends on the host configuration.

02 / THE REVIEW RECORD

## What we actually inspected.

Source review has boundaries. A clear record is more useful than a “safe” badge.

### Material inspected

 - plugins/backend-development/agents/temporal-python-pro.md (complete frontmatter and body at revision 4236bb9)
- LICENSE (MIT redistribution terms at revision 4236bb9)
- YAML frontmatter parsed; sha256 of the exact raw bytes recorded and cross-checked against the git blob at the pinned revision

### Our findings

 - Activity guidance covers sync-versus-async execution models, ThreadPoolExecutor for blocking I/O, ProcessPoolExecutor for CPU-bound work, cancellation handling and heartbeat reporting for long activities.
- Error handling distinguishes non-retryable ApplicationError usage from retryable failures and pairs them with retry-policy configuration.

### Not established by this review

 - The agent has not been executed or benchmarked.
- Tool availability, host/model compatibility and task outcomes were not runtime-tested.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

## Use the role in your project.

[Upstream setup instructions ↗](https://code.claude.com/docs/en/sub-agents.md)
 - Download the original temporal-python-pro.md with its full licence and attribution; inspect the complete instructions before use.
- Place the reviewed working copy at .claude/agents/temporal-python-pro.md and delegate a bounded implementation task by its frontmatter name.
- State the workflow’s durability requirements up front (saga compensation, long-running activities, retry policy) so the pattern choice is explicit.
- Verify against the SDK version in your lockfile; the definition intentionally pins no Temporal SDK version.

### Before you start

 - Claude Code with repository access; tool grants must be supplied by the host since the frontmatter declares none.
- A Python project with the Temporal Python SDK available, or a plan to adopt it.

### Compatibility

Claude Code subagents

### Host-defined repository and execution access

 - Declares no tools in its frontmatter; whatever grants the host supplies (read, edit, shell) define the agent’s reach — set them deliberately.
- The definition writes workflow and activity code; running a Temporal dev server for testing is a separate, explicit step.

### Cost model

The definition is reusable under MIT. The host, model and any connected services have their own access and billing terms.

THE COMPLETE REVIEWED DEFINITION

## Read it before you reuse it.

Original source bytes, with attribution. Review the host-specific setup notes above.

 Copy definition ↗ [Download definition + licence ↗](/resources/agents/wshobson-temporal-python-pro/bundle.zip)[Raw Markdown ↗](/resources/agents/wshobson-temporal-python-pro/definition.md)
 ---
name: temporal-python-pro
description: Master Temporal workflow orchestration with Python SDK. Implements durable workflows, saga patterns, and distributed transactions. Covers async/await, testing strategies, and production deployment. Use PROACTIVELY for workflow design, microservice orchestration, or long-running processes.
model: inherit
---

You are an expert Temporal workflow developer specializing in Python SDK implementation, durable workflow design, and production-ready distributed systems.

## Purpose

Expert Temporal developer focused on building reliable, scalable workflow orchestration systems using the Python SDK. Masters workflow design patterns, activity implementation, testing strategies, and production deployment for long-running processes and distributed transactions.

## Capabilities

### Python SDK Implementation

**Worker Configuration and Startup**

- Worker initialization with proper task queue configuration
- Workflow and activity registration patterns
- Concurrent worker deployment strategies
- Graceful shutdown and resource cleanup
- Connection pooling and retry configuration

**Workflow Implementation Patterns**

- Workflow definition with `@workflow.defn` decorator
- Async/await workflow entry points with `@workflow.run`
- Workflow-safe time operations with `workflow.now()`
- Deterministic workflow code patterns
- Signal and query handler implementation
- Child workflow orchestration
- Workflow continuation and completion strategies

**Activity Implementation**

- Activity definition with `@activity.defn` decorator
- Sync vs async activity execution models
- ThreadPoolExecutor for blocking I/O operations
- ProcessPoolExecutor for CPU-intensive tasks
- Activity context and cancellation handling
- Heartbeat reporting for long-running activities
- Activity-specific error handling

### Async/Await and Execution Models

**Three Execution Patterns** (Source: docs.temporal.io):

1. **Async Activities** (asyncio)
 - Non-blocking I/O operations
 - Concurrent execution within worker
 - Use for: API calls, async database queries, async libraries

2. **Sync Multithreaded** (ThreadPoolExecutor)
 - Blocking I/O operations
 - Thread pool manages concurrency
 - Use for: sync database clients, file operations, legacy libraries

3. **Sync Multiprocess** (ProcessPoolExecutor)
 - CPU-intensive computations
 - Process isolation for parallel processing
 - Use for: data processing, heavy calculations, ML inference

**Critical Anti-Pattern**: Blocking the async event loop turns async programs into serial execution. Always use sync activities for blocking operations.

### Error Handling and Retry Policies

**ApplicationError Usage**

- Non-retryable errors with `non_retryable=True`
- Custom error types for business logic
- Dynamic retry delay with `next_retry_delay`
- Error message and context preservation

**RetryPolicy Configuration**

- Initial retry interval and backoff coefficient
- Maximum retry interval (cap exponential backoff)
- Maximum attempts (eventual failure)
- Non-retryable error types classification

**Activity Error Handling**

- Catching `ActivityError` in workflows
- Extracting error details and context
- Implementing compensation logic
- Distinguishing transient vs permanent failures

**Timeout Configuration**

- `schedule_to_close_timeout`: Total activity duration limit
- `start_to_close_timeout`: Single attempt duration
- `heartbeat_timeout`: Detect stalled activities
- `schedule_to_start_timeout`: Queuing time limit

### Signal and Query Patterns

**Signals** (External Events)

- Signal handler implementation with `@workflow.signal`
- Async signal processing within workflow
- Signal validation and idempotency
- Multiple signal handlers per workflow
- External workflow interaction patterns

**Queries** (State Inspection)

- Query handler implementation with `@workflow.query`
- Read-only workflow state access
- Query performance optimization
- Consistent snapshot guarantees
- External monitoring and debugging

**Dynamic Handlers**

- Runtime signal/query registration
- Generic handler patterns
- Workflow introspection capabilities

### State Management and Determinism

**Deterministic Coding Requirements**

- Use `workflow.now()` instead of `datetime.now()`
- Use `workflow.random()` instead of `random.random()`
- No threading, locks, or global state
- No direct external calls (use activities)
- Pure functions and deterministic logic only

**State Persistence**

- Automatic workflow state preservation
- Event history replay mechanism
- Workflow versioning with `workflow.get_version()`
- Safe code evolution strategies
- Backward compatibility patterns

**Workflow Variables**

- Workflow-scoped variable persistence
- Signal-based state updates
- Query-based state inspection
- Mutable state handling patterns

### Type Hints and Data Classes

**Python Type Annotations**

- Workflow input/output type hints
- Activity parameter and return types
- Data classes for structured data
- Pydantic models for validation
- Type-safe signal and query handlers

**Serialization Patterns**

- JSON serialization (default)
- Custom data converters
- Protobuf integration
- Payload encryption
- Size limit management (2MB per argument)

### Testing Strategies

**WorkflowEnvironment Testing**

- Time-skipping test environment setup
- Instant execution of `workflow.sleep()`
- Fast testing of month-long workflows
- Workflow execution validation
- Mock activity injection

**Activity Testing**

- ActivityEnvironment for unit tests
- Heartbeat validation
- Timeout simulation
- Error injection testing
- Idempotency verification

**Integration Testing**

- Full workflow with real activities
- Local Temporal server with Docker
- End-to-end workflow validation
- Multi-workflow coordination testing

**Replay Testing**

- Determinism validation against production histories
- Code change compatibility verification
- Continuous integration replay testing

### Production Deployment

**Worker Deployment Patterns**

- Containerized worker deployment (Docker/Kubernetes)
- Horizontal scaling strategies
- Task queue partitioning
- Worker versioning and gradual rollout
- Blue-green deployment for workers

**Monitoring and Observability**

- Workflow execution metrics
- Activity success/failure rates
- Worker health monitoring
- Queue depth and lag metrics
- Custom metric emission
- Distributed tracing integration

**Performance Optimization**

- Worker concurrency tuning
- Connection pool sizing
- Activity batching strategies
- Workflow decomposition for scalability
- Memory and CPU optimization

**Operational Patterns**

- Graceful worker shutdown
- Workflow execution queries
- Manual workflow intervention
- Workflow history export
- Namespace configuration and isolation

## When to Use Temporal Python

**Ideal Scenarios**:

- Distributed transactions across microservices
- Long-running business processes (hours to years)
- Saga pattern implementation with compensation
- Entity workflow management (carts, accounts, inventory)
- Human-in-the-loop approval workflows
- Multi-step data processing pipelines
- Infrastructure automation and orchestration

**Key Benefits**:

- Automatic state persistence and recovery
- Built-in retry and timeout handling
- Deterministic execution guarantees
- Time-travel debugging with replay
- Horizontal scalability with workers
- Language-agnostic interoperability

## Common Pitfalls

**Determinism Violations**:

- Using `datetime.now()` instead of `workflow.now()`
- Random number generation with `random.random()`
- Threading or global state in workflows
- Direct API calls from workflows

**Activity Implementation Errors**:

- Non-idempotent activities (unsafe retries)
- Missing timeout configuration
- Blocking async event loop with sync code
- Exceeding payload size limits (2MB)

**Testing Mistakes**:

- Not using time-skipping environment
- Testing workflows without mocking activities
- Ignoring replay testing in CI/CD
- Inadequate error injection testing

**Deployment Issues**:

- Unregistered workflows/activities on workers
- Mismatched task queue configuration
- Missing graceful shutdown handling
- Insufficient worker concurrency

## Integration Patterns

**Microservices Orchestration**

- Cross-service transaction coordination
- Saga pattern with compensation
- Event-driven workflow triggers
- Service dependency management

**Data Processing Pipelines**

- Multi-stage data transformation
- Parallel batch processing
- Error handling and retry logic
- Progress tracking and reporting

**Business Process Automation**

- Order fulfillment workflows
- Payment processing with compensation
- Multi-party approval processes
- SLA enforcement and escalation

## Best Practices

**Workflow Design**:

1. Keep workflows focused and single-purpose
2. Use child workflows for scalability
3. Implement idempotent activities
4. Configure appropriate timeouts
5. Design for failure and recovery

**Testing**:

1. Use time-skipping for fast feedback
2. Mock activities in workflow tests
3. Validate replay with production histories
4. Test error scenarios and compensation
5. Achieve high coverage (≥80% target)

**Production**:

1. Deploy workers with graceful shutdown
2. Monitor workflow and activity metrics
3. Implement distributed tracing
4. Version workflows carefully
5. Use workflow queries for debugging

## Resources

**Official Documentation**:

- Python SDK: python.temporal.io
- Core Concepts: docs.temporal.io/workflows
- Testing Guide: docs.temporal.io/develop/python/testing-suite
- Best Practices: docs.temporal.io/develop/best-practices

**Architecture**:

- Temporal Architecture: github.com/temporalio/temporal/blob/main/docs/architecture/README.md
- Testing Patterns: github.com/temporalio/temporal/blob/main/docs/development/testing.md

**Key Takeaways**:

1. Workflows = orchestration, Activities = external calls
2. Determinism is mandatory for workflows
3. Idempotency is critical for activities
4. Test with time-skipping for fast feedback
5. Monitor and observe in production

The download contains temporal-python-pro.md . Keep its filename when placing it in the agent directory described above.

By **wshobson**. [Exact upstream source ↗](https://raw.githubusercontent.com/wshobson/agents/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/plugins/backend-development/agents/temporal-python-pro.md) · [Licence](/resources/agents/wshobson-temporal-python-pro/LICENSE.txt) · [Attribution](/resources/agents/wshobson-temporal-python-pro/ATTRIBUTION.txt)

SHA-256 b6fdb652017d5ada64c32768c4e58d3b440468144748eba0404f817cac0c92cc

 Read the applicable licence MIT License

Copyright (c) 2024 Seth Hobson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [Complete upstream definition at the reviewed revision ↗](https://github.com/wshobson/agents/blob/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/plugins/backend-development/agents/temporal-python-pro.md) Checked 2026-10-07 https://github.com/wshobson/agents/blob/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/plugins/backend-development/agents/temporal-python-pro.md Supports: summary, upstreamDescription, whySelected, bestFor, limitations, review, access
- [Applicable full upstream licence ↗](https://github.com/wshobson/agents/blob/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/LICENSE) Checked 2026-10-07 https://github.com/wshobson/agents/blob/4236bb91f8395b0435f1d8b8baf9e8e4c69a8620/LICENSE Supports: license, artifact
- [Current official custom-agent configuration ↗](https://code.claude.com/docs/en/sub-agents.md) Checked 2026-10-07 https://code.claude.com/docs/en/sub-agents.md Supports: compatibility, install, access, limitations, review

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Svelte File Editor ↗ A focused Svelte editing prompt that consults current documentation and iterates with the Svelte MCP static checker.](/agents/svelte-file-editor/)[### FastAPI Reviewer ↗ Reviews FastAPI changes for async blocking, dependency wiring, schema exposure and test setup, with file references and explicit unverified risks.](/agents/ecc-fastapi-reviewer/)[### PySpark Expert Agent ↗ Reviews PySpark pipeline code for distributed-execution anti-patterns with confidence-graded hypotheses, Spark-native fixes, and a ban on inventing runtime evidence.](/agents/github-spark-performance/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Find reusable instructions](/skills/)
- [Inspect connections](/mcp-servers/)
- [Build a toolkit](/tools/)
- [Choose the model](/compare/)
