🔌 gRPC Beginner

What are gRPC metadata?

Answer

gRPC metadata is arbitrary key-value data sent alongside RPC calls, analogous to HTTP headers. Metadata allows clients and servers to exchange information outside the main request/response messages. Common uses: authentication tokens (authorization: Bearer xxx), request IDs for tracing, custom context (tenant ID, API version), and load balancing hints. Metadata is sent in two phases: initial metadata (before response data, like HTTP headers) and trailing metadata (after response data, like HTTP trailers — used for status codes and timing). Keys ending in -bin are binary values (base64 encoded); others are ASCII strings. In Go: md := metadata.Pairs("authorization", "Bearer token"); ctx := metadata.NewOutgoingContext(ctx, md). Servers can read metadata with metadata.FromIncomingContext(ctx).