golang-grpc

Implement and review Go gRPC services with protobuf design, status codes, and TLS.

Updated May 28, 2026
One-click install
npx skills add https://github.com/vanstinator/semantic-search --skill golang-grpc-vanstinator
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: golang-grpc
Source: https://github.com/vanstinator/semantic-search/tree/main/.agents/skills/golang-grpc
Command: npx skills add https://github.com/vanstinator/semantic-search --skill golang-grpc-vanstinator

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It prevents fragile and opaque gRPC implementations by standardizing protobuf structure, error codes, deadlines, interceptors, and shutdown behavior.

Core Features & Use Cases

  • Proto organization and compatibility: Domain + versioned directories with Request/Response wrapper messages so APIs evolve safely.
  • Operationally correct servers: Health checks, interceptor chaining, graceful shutdown with timeout fallback, and production security guidance (TLS/mTLS, no reflection).
  • Client reliability: Connection reuse, per-call deadlines, metadata propagation, and Kubernetes-friendly service discovery/load balancing.

Quick Start

Ask Claude to design a Go gRPC server for user management with correct status codes, a health check, TLS/mTLS guidance, interceptor hooks, and a graceful shutdown plan.

Frequently Asked Questions about golang-grpc

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure protobuf files for a Go gRPC service to ensure API compatibility?

Structure protobuf files using domain and versioned directories with Request/Response wrapper messages. This layout allows gRPC APIs to evolve safely without breaking existing clients when new fields or message types are introduced.

How do I handle errors in gRPC using status codes in Go?

Handle gRPC errors by returning grpc status.Error with appropriate codes. Mapping domain errors to standard gRPC status codes ensures clients receive structured, actionable failure information instead of opaque or undefined responses.

What is the best way to test gRPC services in Go without binding to a real network port?

Test gRPC services using the bufconn package to create an in-memory listener. This approach allows you to dial the server without binding to a real network port, making unit tests faster and more isolated.

How do I implement graceful shutdown for a Go gRPC server?

Implement graceful shutdown by calling GracefulStop on the gRPC server with a timeout fallback. This ensures in-flight RPCs complete or the server forces a shutdown after a specified duration, preventing hung connections.

Does this gRPC Skill guidance support configuring TLS and mTLS for Go services?

Yes, the gRPC Skill guidance supports configuring TLS and mTLS for Go services. It provides production security guidance including mutual TLS setup and recommends disabling server reflection in secure environments.

Why do my gRPC clients experience connection exhaustion under high load?

gRPC clients experience connection exhaustion when connections are not reused properly. Ensure client connection reuse, implement per-RPC deadlines, and configure metadata propagation to maintain client reliability under high load.