A course grounded in your services
gRPC, from newcomer to interview-ready
Every concept anchored to real gRPC code in conversationmgmt, notification & spike.
You write gRPC handlers in this monorepo, but the plumbing is scaffolded for you — so the model underneath (streaming, interceptors, status, deadlines, metadata) isn't a reflex yet. This course builds that model the way an interview tests it, from the proto contract to the wire, pinning each idea to code you already own. Five parts, built one at a time. Lessons are short — one win each. Read them in order.
Part 1 — Foundations: gRPC & Protobuf available now
The contract-first model: define a service in a .proto, generate code, call it like a local method.
1 · What gRPC is & why
RPC over HTTP/2 with Protobuf — and why that beats hand-rolled REST here.
ready2 · Protobuf: messages & fields
The IDL — messages, scalar types, and why field numbers matter.
ready3 · Services & codegen
Defining service { rpc ... } and generating Go stubs with protoc (buf lints).
4 · A unary call, end-to-end
The four RPC types, then one request/response traced through your SendEmail.
Part 2 — Streaming RPCs available now
The other three RPC types — anchored to real streaming code in tom & bob (your 3 services are unary).
5 · Server streaming
One request → a stream of responses; how tom's live chat Subscribe works.
6 · Client streaming
A stream of requests → one response; the upload shape (Recv→SendAndClose).
7 · Bidirectional & choosing
Both directions at once — and the one-line rule for picking any RPC type.
readyPart 3 — Errors, deadlines & metadata available now
What wraps every call regardless of type — and where your Go course pays off.
8 · Status codes & error model
codes.*, the rich error model, and mapping at the boundary (builds on Go L12).
9 · Deadlines & cancellation
Deadline vs timeout; the client sets the clock, context propagates it (builds on Go L17).
ready10 · Metadata: headers in & out
How the auth token & trace ride the call — the synchronous cousin of Kafka headers.
readyPart 4 — Interceptors, middleware & auth available now
The middleware that reads the metadata, enforces the deadlines, and shapes the statuses of Part 3.
11 · Interceptors: unary & stream
What a gRPC interceptor is, the signatures, and the enrich-ctx-then-handler pattern.
ready12 · The middleware chain
How interceptors chain and in what order — your real golibs stack.
13 · Auth & RBAC
Authn from the JWT + authz via rbacDecider; the fake-JWT internal path.
Part 5 — Architecture & production available now
Zoom out: when to use gRPC, how to balance & operate it, and how it reaches the outside world.
14 · gRPC vs REST
The full trade-off table and the decision rule (the interview classic).
ready15 · Load balancing & discovery
Why HTTP/2 connection reuse breaks naive LB — and the two fixes.
ready16 · Health, reflection & shutdown
Operating the server: health probes, why we skip reflection, graceful stop.
ready17 · The gateway
HTTP/JSON transcoding — one proto serving both gRPC and REST (fronts gandalf).
readyReference shelf
Cheat sheet
Dense revision sheet + interview one-liners.
Glossary
The canonical vocabulary, opinionated.
Repo gRPC map
Ground truth: our protos, server, interceptors, file:line.
Resources
grpc.io, protobuf.dev, buf, grpc-go, the book.