Vol. I · No. 46The protocol sectionSat, 10 Oct 2026
Layer 7 · Web · calling a function on another machine

gRPC

Remote Procedure Call over HTTP/2

gRPC makes a network call look like calling a function. A .proto file defines the methods and message types, code is generated for both sides, and the call travels as a compact binary message over HTTP/2 — with streaming in either or both directions.

gRPC turns a contract into generated client and server code, carried as binary messages over HTTP/2 streams.

Operates at
Layer 7
on HTTP/2
Port
443
usually, over TLS
Encoding
Protobuf
binary, schema-first
Calls
4 kinds
unary and streaming

How it works

A contract, generated code, and one HTTP/2 stream per call
Client stubServer implementation
The contract both sides are generated from
service Atlasthe interface
rpc GetProtocolthe method
message Requesttyped fields
message Replytyped fields
Call — a POST to /Atlas/GetProtocol on a new stream
HEADERS + a length-prefixed protobuf message
The stub serialises the request; the wire carries bytes, not JSON
Response — message, then a trailing status
The reply message, then grpc-status: 0
Errors are a status code in the trailers, not an HTTP status

Because each call is its own HTTP/2 stream, a single connection carries many calls at once — and a method declared streaming keeps its stream open to send a sequence of messages rather than one.

The main points

What gRPC does, step by step

1
Write the contract

A .proto file declares the service, its methods and every message type, with numbered fields.

2
Generate both sides

protoc produces a typed client stub and a server interface in whatever languages are involved.

3
Call over a stream

The stub serialises the message and sends it as an HTTP/2 POST on a fresh stream.

4
Return status in trailers

The reply comes back on the same stream, followed by a grpc-status trailer saying whether it worked.

The four call types
Unary — one request, one reply
Server streaming — one request, many replies
Client streaming — many requests, one reply
Bidirectional — both, at once
Deadlines — every call carries a timeout
gRPC-Web — a proxy for browsers

In cybersecurity

gRPC gets TLS and a typed schema for free, which removes whole classes of bug — but its binary framing hides it from most inspection tooling.

TLS by default

Channel credentials are the normal path; insecure channels are a deliberate opt-out.

Schema is not authorisation

Types validate shape, not permission — check who may call each method.

Set deadlines

A call without a deadline can pin server resources indefinitely; propagate them across hops.

Message size limits

The default cap exists for a reason — raising it invites memory exhaustion.

Reflection in production

Server reflection lets anyone enumerate every method you expose; disable it outside development.

Opaque to WAFs

Protobuf over HTTP/2 is unreadable to appliances expecting JSON — put checks in the service.

Rides in the stack

TCPTLSHTTP/2gRPC

It is not a new transport — gRPC is a convention for using HTTP/2 streams, which is why proxies can route it.

Works with

HTTP/2

REST or gRPC?

REST / JSONgRPC
ContractDocumentedGenerated
PayloadText JSONBinary protobuf
StreamingAwkwardFirst class
Readable on wireYesNo