z-go-grpc
Installation
SKILL.md
gRPC services
gRPC is the RPC half of an OpenAPI-first shop: internal service-to-service calls go
over gRPC+protobuf, external HTTP goes through ogen ([[z-go-ogen]]). The proto file
is the contract — treat it with the same discipline as openapi.yaml: change it
first, regenerate, then implement.
Quick reference
| Decision | Default | Reach for the alternative when |
|---|---|---|
| Transport | grpc-go (google.golang.org/grpc) |
connectrpc when browser/curl clients matter more than the existing grpc-go/xDS ecosystem |
| RPC shape | unary | streaming once one request/response can't carry the payload, or the client needs partial results before completion |
| Server instrumentation | grpc.StatsHandler(otelgrpc.NewServerHandler()) |
never an interceptor — otelgrpc's interceptor forms are deprecated |
| buf breaking category | FILE |
Deliberately select WIRE_JSON when generated-source compatibility is not required; WIRE excludes JSON guarantees |
| Keepalive | library defaults | tune only after a specific idle-connection or GOAWAY incident |
| Client construction | grpc.NewClient |
never grpc.Dial/DialContext — deprecated since v1.63 |