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
Mensagem pronta para colar
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-proOu 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.mdConteú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
-proespecí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
- 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.
- 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.
- Implemente Incrementalmente: Comece com classes Protobuf/Dados compartilhadas, depois Atividades, depois Workflows e, finalmente, Workers.
- 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, incluindoMaxConcurrentActivityTaskPollers,WorkerStopTimeouteStickyScheduleToStartTimeout. - 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.Channeleworkflow.Selectorem vez de primitivas nativas. - Versionamento: Implementação de evolução de código segura usando
workflow.GetVersioneworkflow.GetReplaySafeLogger. - Processamento em Larga Escala: Padrão para
ContinueAsNewpara 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
WorkflowTestSuitepara 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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4342
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC