Receber por email
← Voltar para o catálogo

temporal

Help developers use Temporal for durable execution workflows. Covers CLI commands, SDK patterns (Go, TypeScript, Python, Java), workflow orchestration, and architectural decisions.

10estrelas
Atualizado há 2 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add rube-de/cc-skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/temporal-rube-de/svg)](https://www.skillteca.com.br/skills/temporal-rube-de)

Skills relacionadas

Ver todas de Automação →

Alerta por categoria

Receba novas skills de Automação toda segunda

1 email curto, só com as skills novas de Automação. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

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](references/CLI.md) | Complete CLI command reference: installation, server, workflows, schedules, operators | | [SDK-PATTERNS.md](references/SDK-PATTERNS.md) | Cross-language SDK patterns: Go, TypeScript, Python, Java side-by-side | | [CONCEPTS.md](references/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 — use workflow.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

  1. Check event history: temporal workflow show -w <id>
  2. Look for ActivityTaskScheduled without corresponding ActivityTaskCompleted
  3. Verify workers are running and polling the correct task queue
  4. Check activity timeouts — may need HeartbeatTimeout for long activities
  5. 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:

  1. Identify the task: CLI operation, SDK code, architecture decision, or debugging
  2. Check the language: For SDK questions, determine Go/TypeScript/Python/Java
  3. Consult references: Use the reference docs for detailed patterns and commands
  4. Verify determinism: For workflow code, ensure deterministic execution rules are followed
  5. Test guidance: Recommend SDK test utilities, replay testing, and local dev server
Compartilhar X LinkedIn