Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #4342

temporal-golang-pro

Faz seu agente construir sistemas distribuídos robustos usando o SDK Go do Temporal. Ajuda a definir regras de fluxo de trabalho e configurar trabalhadores.

O que ela faz

Esta ferramenta ajuda a criar sistemas distribuídos robustos e confiáveis usando o SDK Go do Temporal. Ela garante que seus processos funcionem corretamente, mesmo que falhem temporariamente, e ajuda a configurar a segurança e o desempenho.

Quando usar

  • ✓Ao construir microsserviços que precisam de estado durável e orquestração confiável.
  • ✓Ao implementar processos longos (dias/meses) ou padrões complexos de transação.
  • ✓Ao otimizar a segurança (mTLS) e o desempenho de seus sistemas.

Exemplo do que pedir para a IA

“Como posso configurar um worker seguro com mTLS para meu sistema distribuído em Go?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/temporal-golang-pro/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/temporal-golang-pro/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa seus requisitos e aplica as melhores práticas do SDK Go do Temporal. Ela verifica se o código é determinístico (funciona sempre da mesma forma) e ajuda a configurar workers, gerenciar fluxos de trabalho complexos e testar tudo de forma confiável.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill temporal-golang-pro

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/temporal-golang-pro/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Temporal Go SDK (temporal-golang-pro)

Visão Geral

Guia de nível especialista para construir sistemas distribuídos resilientes, escaláveis e determinísticos usando o Temporal Go SDK. Essa habilidade transforma requisitos vagos de orquestração em implementações Go prontas para produção, focando em execução durável, determinismo rigoroso e configuração de workers em escala empresarial.

Quando Usar Esta Habilidade

  • Projetando Sistemas Distribuídos: Ao construir microsserviços que exigem estado durável e orquestração confiável.
  • Implementando Workflows Complexos: Usando o Go SDK para lidar com processos de longa duração (dias/meses) ou padrões Saga complexos.
  • Otimizando Desempenho: Quando os workers precisam de concorrência ajustada, segurança mTLS ou interceptores personalizados.
  • Garantindo Confiabilidade: Implementando atividades idempotentes, tratamento de erros gracioso e políticas de retentativa sofisticadas.
  • Manutenção e Evolução: Versionando workflows em execução ou realizando atualizações de workers sem tempo de inatividade.

Não use esta habilidade quando

  • Usando Temporal com outros SDKs (Python, Java, TypeScript) - consulte suas habilidades -pro específicas.
  • A tarefa é uma simples requisição/resposta sem necessidade de durabilidade ou coordenação.
  • Design de alto nível sem implementação (use workflow-orchestration-patterns).

Guia Passo a Passo

  1. Reúna o Contexto: Pergunte proativamente sobre:
    • Cluster Temporal de destino (Cloud vs. Auto-hospedado) e Namespace.
    • Nomes das Task Queues e vazão esperada.
    • Requisitos de segurança (caminhos mTLS, autenticação).
    • Modos de falha e políticas de retentativa/timeout desejadas.
  2. Verifique o Determinismo: Antes de sugerir código de workflow, verifique contra estas 5 Regras:
    • Sem concorrência nativa Go (goroutines).
    • Sem tempo nativo (time.Now, time.Sleep).
    • Sem iteração de mapa não determinística (as chaves devem ser ordenadas).
    • Sem I/O externo direto ou chamadas de rede.
    • Sem números aleatórios não determinísticos.
  3. Implemente Incrementalmente: Comece com classes Protobuf/Dados compartilhadas, depois Atividades, depois Workflows e, finalmente, Workers.
  4. Aproveite os Recursos: Se a implementação exigir padrões avançados (Sagas, Interceptores, Teste de Replay), consulte explicitamente o playbook de implementação e as estratégias de teste.

Capacidades

Implementação do Go SDK

  • Gerenciamento de Workers: Conhecimento profundo de worker.Options, incluindo MaxConcurrentActivityTaskPollers, WorkerStopTimeout e StickyScheduleToStartTimeout.
  • Interceptores: Implementação de interceptores de Cliente, Worker e Workflow para preocupações transversais (logging, tracing, auth).
  • Conversores de Dados Personalizados: Integração de Protobuf, payloads criptografados ou marshaling JSON personalizado.

Padrões Avançados de Workflow

  • Concorrência Durável: Usando workflow.Go, workflow.Channel e workflow.Selector em vez de primitivas nativas.
  • Versionamento: Implementação de evolução de código segura usando workflow.GetVersion e workflow.GetReplaySafeLogger.
  • Processamento em Larga Escala: Padrão para ContinueAsNew para gerenciar limites de tamanho de histórico (padrões: 50MB ou 50K eventos).
  • Child Workflows: Gerenciamento de ciclo de vida, cancelamento e propagação de sinais pai-filho.

Teste e Observabilidade

  • Domínio da Testsuite: Usando WorkflowTestSuite para testes unitários e funcionais com controle de tempo determinístico.
  • Mocking: Estratégias sofisticadas de mocking de atividades e child workflows.
  • Teste de Replay: Validação de alterações de código contra históricos de eventos de produção.
  • Métricas: Configuração de exportadores Prometheus/OpenTelemetry para rastreamento de desempenho de workers.

Exemplos

Exemplo 1: Workflow Versionado (Determinístico)

// Nota: imports omitidos. Requer 'go.temporal.io/sdk/workflow', 'go.temporal.io/sdk/temporal', e 'time'.
func SubscriptionWorkflow(ctx workflow.Context, userID string) error {
    // 1. Versionamento para evolução da lógica (v1 = DefaultVersion)
    v := workflow.GetVersion(ctx, "billing_logic", workflow.DefaultVersion, 2)

    for i := 0; i < 12; i++ {
        ao := workflow.ActivityOptions{
            StartToCloseTimeout: 5 * time.Minute,
            RetryPolicy: &temporal.RetryPolicy{MaximumAttempts: 3},
        }
        ctx = workflow.WithActivityOptions(ctx, ao)

        // 2. Execução da Atividade (Sempre trate erros)
        err := workflow.ExecuteActivity(ctx, ChargePaymentActivity, userID).Get(ctx, nil)
        if err != nil {
            workflow.GetLogger(ctx).Error("Pagamento falhou", "Erro", err)
            return err
        }


…
Perguntas frequentes

O que são sistemas distribuídos?

São sistemas compostos por vários computadores que trabalham juntos para realizar uma tarefa, como um site grande ou um serviço de pagamento.

O que significa 'determinístico' neste contexto?

Significa que um processo, quando executado com as mesmas entradas, sempre produzirá o mesmo resultado, sem depender de fatores externos ou aleatórios.

O que é mTLS?

É uma forma avançada de segurança que garante que tanto o cliente quanto o servidor se autentiquem mutuamente, como um aperto de mão secreto entre duas partes antes de se comunicarem.

Detalhes

Descrição original do autor

Use when building durable distributed systems with Temporal Go SDK. Covers deterministic workflow rules, mTLS worker configs, and advanced patterns.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4342
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas