grpc-golang
Cria serviços gRPC seguros em Go. É útil para comunicação entre sistemas, garantindo segurança e monitoramento eficientes.
O que ela faz
Esta skill ajuda a criar serviços de comunicação seguros e eficientes em Go usando gRPC. Ela ensina a definir como os programas se comunicam, a garantir que a comunicação seja segura (mTLS) e a monitorar o que está acontecendo.
Quando usar
- ✓Ao criar sistemas onde programas precisam conversar entre si de forma rápida e segura.
- ✓Ao definir como diferentes partes de um software vão trocar informações.
- ✓Ao construir APIs internas que precisam de alta performance e segurança.
Exemplo do que pedir para a IA
“Como posso configurar a comunicação segura (mTLS) entre meus serviços Go usando gRPC?”
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 skill guia você na definição dos contratos de comunicação (usando Protobuf e Buf), na configuração de segurança para que apenas serviços autorizados se comuniquem (mTLS) e na adição de ferramentas para monitorar o tráfego e o desempenho.
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 grpc-golangOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/grpc-golang/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.
gRPC Golang (gRPC-Go)
Visão Geral
Guia completo para projetar e implementar serviços gRPC de nível de produção em Go. Abrange padronização de contratos com Buf, segurança de camada de transporte via mTLS e observabilidade profunda com interceptores OpenTelemetry.
Use esta habilidade quando
- Projetando comunicação de microsserviços com gRPC em Go.
- Construindo APIs internas de alta performance usando Protobuf.
- Implementando cargas de trabalho de streaming (unidirecional ou bidirecional).
- Padronizando contratos de API usando Protobuf e Buf.
- Configurando mTLS para autenticação de serviço a serviço.
Não use esta habilidade quando
- Construindo APIs públicas puramente REST/HTTP sem requisitos de gRPC.
- Modificando arquivos
.protolegados sem a capacidade de introduzir uma nova versão de API (por exemplo,api.v2) ou garantir compatibilidade retroativa. - Gerenciando roteamento de tráfego de malha de serviço (por exemplo, Istio/Linkerd), que está fora do escopo do código da aplicação.
Guia Passo a Passo
- Confirmar Contexto Técnico: Identifique a versão do Go, a versão do gRPC-Go e se o projeto usa Buf ou protoc puro.
- Confirmar Requisitos: Identifique necessidades de mTLS, padrões de carga (unário/streaming), SLOs e limites de tamanho de mensagem.
- Planejar Esquema: Defina versionamento de pacotes (por exemplo,
api.v1), tipos de recursos e mapeamento de erros. - Projeto de Segurança: Implemente mTLS para autenticação de serviço a serviço.
- Observabilidade: Configure interceptores para rastreamento, métricas e logging estruturado.
- Verificação: Sempre execute verificações de
buf linte de alterações que quebram compatibilidade antes de finalizar a geração de código.
Consulte resources/implementation-playbook.md para padrões detalhados, exemplos de código e anti-padrões.
Exemplos
Exemplo 1: Definindo um Serviço e Mensagem (API v1)
syntax = "proto3";
package api.v1;
option go_package = "github.com/org/repo/gen/api/v1;apiv1";
service UserService {
rpc GetUser(GetUserRequest) returns (GetUserResponse);
}
message User {
string id = 1;
string name = 2;
}
message GetUserRequest {
string id = 1;
}
message GetUserResponse {
User user = 1;
}
Melhores Práticas
- ✅ Faça: Use Buf para padronizar sua toolchain e linting com
buf.yamlebuf.gen.yaml. - ✅ Faça: Sempre use versionamento semântico em caminhos de pacotes (por exemplo,
package api.v1). - ✅ Faça: Imponha mTLS para toda a comunicação interna de serviço a serviço.
- ✅ Faça: Trate
ctx.Done()em todos os manipuladores de streaming para evitar vazamentos de recursos. - ✅ Faça: Mapeie erros de domínio para códigos de status gRPC padrão (por exemplo,
codes.NotFound). - ❌ Não faça: Retorne strings de erro internas brutas ou traces de pilha para clientes gRPC.
- ❌ Não faça: Crie uma nova
grpc.ClientConnpor requisição; sempre reutilize conexões.
Solução de Problemas
- Erro: Gen Inconsistente: Se o código gerado não corresponder ao esquema, execute
buf generatee verifique a opçãogo_package. - Erro: Prazo do Contexto: Verifique os timeouts do cliente e certifique-se de que o servidor não está bloqueando infinitamente em manipuladores de streaming.
- Erro: Handshake mTLS: Certifique-se de que o certificado CA está corretamente adicionado ao
x509.CertPoolem ambos os lados, cliente e servidor.
Limitações
- Não cobre roteamento de tráfego de malha de serviço (configuração Istio/Linkerd).
- Não cobre gRPC-Web ou integração gRPC baseada em navegador.
- Assume Go 1.21+ e gRPC-Go v1.60+; versões mais antigas podem ter APIs diferentes (por exemplo,
grpc.Dialvsgrpc.NewClient). - Não cobre configuração de balanceador de carga ciente de gRPC L7 (por exemplo, Envoy, NGINX).
- Não aborda registro de esquema Protobuf ou governança de esquema em larga escala além do lint do Buf.
Recursos
resources/implementation-playbook.mdpara padrões detalhados, exemplos de código e anti-padrões.- Guia de Design de API do Google
- Documentação Buf
- Documentação gRPC-Go
- Instrumentação OpenTelemetry Go
Habilidades Relacionadas
- @golang-pro - Padrões gerais de Go e otimização de performance fora da camada gRPC.
- @go-concurrency-patterns - Gerenciamento avançado do ciclo de vida de goroutines para manipuladores de streaming.
- @api-design-principles - Estratégia de nomenclatura e versionamento de recursos antes de escrever arquivos
.proto. - @docker-expert - Containerização de serviços gRPC e configuração de injeção de certificados TLS via segredos do Docker.
Perguntas frequentes
O que é gRPC e Protobuf?
gRPC é uma forma de fazer programas conversarem entre si pela rede, e Protobuf é uma linguagem para definir como as mensagens trocadas se parecem, tornando a comunicação mais eficiente.
O que é mTLS?
mTLS (mutual Transport Layer Security) é um tipo de segurança que garante que tanto o cliente quanto o servidor se identifiquem um ao outro antes de trocarem informações, protegendo contra acessos não autorizados.
O que é Buf?
Buf é uma ferramenta que ajuda a gerenciar e padronizar os arquivos de definição de mensagens (Protobuf), garantindo que todos sigam as mesmas regras e facilitando a geração de código.
Detalhes
Descrição original do autor
Build production-ready gRPC services in Go with mTLS, streaming, and observability. Use when designing Protobuf contracts with Buf or implementing secure service-to-service transport.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3177
- 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