{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreigo3v3txqstywv6ldyo4i5k4ep7crvsorcjhsfmhyffvl6hb55e4y",
"uri": "at://did:plc:5sgu76a53rz3n6unbykmovqy/app.bsky.feed.post/3mlof5ntgyb22"
},
"description": "gRPC is a high-performance RPC framework developed at Google, using HTTP/2 as the transport and Protocol Buffers (protobuf) as the schema and serialization format. It is the default choice for internal service-to-service communication at many companies running microservices in compiled languages.\n\n\nHow it works\n\nServices are defined in .proto files specifying messages and RPC methods. A code generator produces strongly typed client and server stubs in target languages. Calls travel over HTTP/2 s",
"path": "/engineering-glossary/grpc-remote-procedure-call/",
"publishedAt": "2026-05-12T18:10:09.000Z",
"site": "https://sahilkapoor.com",
"tags": [
"REST API",
"GraphQL",
"HTTP",
"Microservices"
],
"textContent": "**gRPC** is a high-performance RPC framework developed at Google, using HTTP/2 as the transport and Protocol Buffers (protobuf) as the schema and serialization format. It is the default choice for internal service-to-service communication at many companies running microservices in compiled languages.\n\n## How it works\n\nServices are defined in `.proto` files specifying messages and RPC methods. A code generator produces strongly typed client and server stubs in target languages. Calls travel over HTTP/2 streams, allowing multiplexing and bidirectional streaming alongside the classic unary request-response.\n\n## Call patterns\n\n * **Unary:** single request, single response. The default.\n * **Server streaming:** single request, stream of responses.\n * **Client streaming:** stream of requests, single response.\n * **Bidirectional streaming:** both sides stream concurrently.\n\n\n\n## gRPC vs REST vs GraphQL\n\n * **gRPC.** Binary, schema-first, high performance, ideal for internal traffic. Browser support requires gRPC-Web.\n * **REST.** Text-based, browser-friendly, cache-friendly, looser typing.\n * **GraphQL.** Flexible field selection, single endpoint, strong typing, no streaming by default.\n\n\n\nš\n\n**Related Terms**\nREST API, GraphQL, HTTP, Microservices.",
"title": "gRPC",
"updatedAt": "2026-05-13T19:15:08.144Z"
}