Communication & APIs
A high-performance RPC framework using HTTP/2, Protocol Buffers, and code generation for type-safe, low-latency service-to-service communication.
gRPC is a remote procedure call framework originally developed at Google. Service interfaces are defined in Protocol Buffers (.proto files), and the gRPC tooling generates strongly typed client and server stubs in many languages. The wire protocol uses HTTP/2, enabling multiplexing, header compression, and streaming.
Compared to REST, gRPC is more efficient (binary protobuf is smaller and faster to parse than JSON), more strongly typed (the .proto file is the contract), and supports four call patterns: unary, server-streaming, client-streaming, and bidirectional streaming. These properties make gRPC the dominant choice for internal microservice communication at scale, especially in polyglot environments.
The downsides: gRPC is harder to debug (binary on the wire), less browser-friendly (gRPC-Web exists but is more limited), and overkill for simple, low-traffic public APIs where REST suffices.
Use gRPC for internal service-to-service traffic where performance and type safety matter, and for any streaming use case (chat, telemetry, real-time updates).
gRPC is harder to use from browsers, requires sharing .proto contracts, and adds tooling overhead. For external public APIs that third-party developers consume, REST or GraphQL are usually better choices.
An architectural style for web APIs based on HTTP verbs (GET, POST, PUT, DELETE) acting on resources identified by URLs.
A query language for APIs that lets clients request exactly the fields they need in a single request, eliminating over- and under-fetching.
A major revision of the HTTP protocol that introduces multiplexing, header compression, and server push over a single binary framing layer on TCP.
An architectural style that structures an application as a collection of small, independently deployable services, each responsible for a specific business capability.
A persistent, bidirectional communication channel between client and server over a single TCP connection — the standard for real-time web features.
A buffer that holds messages between producers and consumers, enabling asynchronous processing and decoupling of services.