gRPC Streaming
Four call patterns — unary, server streaming, client streaming and bidirectional — built on HTTP/2 streams.
Unary is a normal request/response. Server streaming returns many messages for one request — results as they are computed, a live feed, a large export delivered incrementally. Client streaming sends many messages and receives one response, which suits uploads and telemetry batches. Bidirectional allows both simultaneously and independently.
Streaming matters architecturally because it removes patterns that would otherwise need polling or a separate protocol, and because it applies flow control through HTTP/2, so a slow consumer slows the producer rather than accumulating an unbounded buffer.
The operational considerations: long-lived streams complicate load balancing (a connection sticks to one backend, so balancing happens at connection time rather than per request), deployments must handle draining them explicitly, and clients need reconnection with jittered backoff.