gRPC uses Protocol Buffers as its interface definition language and HTTP/2 as its transport, giving you a tight binary contract, generated clients in many languages, streaming in both directions, and excellent performance. It is contract-first by design, which is exactly the discipline good governance wants.
The context it fits is clear: internal or partner service-to-service communication where both ends are under your control, where latency and throughput matter, and where a strongly typed contract is an advantage rather than an obstacle.
The context it does not fit is the broad public API. Its weakness has always been accessibility — browsers cannot speak it natively without a proxy layer, the debugging story is worse than curl against JSON, and the enormous ecosystem of HTTP-centric tooling does not apply cleanly. That is not a fatal flaw so much as a boundary condition, and Google’s own model is the honest one: offer gRPC for the high-performance internal and partner cases and REST for broad public consumption, side by side.
From a governance standpoint, remember that protocol choice is itself a governance decision. You govern gRPC through its Protocol Buffers contracts and schema discipline, not by shoehorning it into tooling built for OpenAPI.