{
  "$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"
}