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.

How to use this Do one lesson, take its quiz from memory (no peeking), then skim the matching row of the cheat sheet. Come back a day later and re-take it — spacing beats cramming. This is your third course; you know the drill. Stuck? Ask me — I'm your teacher, not just the author.

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.

ready

2 · Protobuf: messages & fields

The IDL — messages, scalar types, and why field numbers matter.

ready

3 · Services & codegen

Defining service { rpc ... } and generating Go stubs with protoc (buf lints).

ready

4 · A unary call, end-to-end

The four RPC types, then one request/response traced through your SendEmail.

ready

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.

ready

6 · Client streaming

A stream of requests → one response; the upload shape (RecvSendAndClose).

ready

7 · Bidirectional & choosing

Both directions at once — and the one-line rule for picking any RPC type.

ready

Part 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).

ready

9 · Deadlines & cancellation

Deadline vs timeout; the client sets the clock, context propagates it (builds on Go L17).

ready

10 · Metadata: headers in & out

How the auth token & trace ride the call — the synchronous cousin of Kafka headers.

ready

Part 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.

ready

12 · The middleware chain

How interceptors chain and in what order — your real golibs stack.

ready

13 · Auth & RBAC

Authn from the JWT + authz via rbacDecider; the fake-JWT internal path.

ready

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).

ready

15 · Load balancing & discovery

Why HTTP/2 connection reuse breaks naive LB — and the two fixes.

ready

16 · Health, reflection & shutdown

Operating the server: health probes, why we skip reflection, graceful stop.

ready

17 · The gateway

HTTP/JSON transcoding — one proto serving both gRPC and REST (fronts gandalf).

ready

Reference 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.

All 17 lessons are built — the full course, from "what is gRPC" to the gateway. The last mile is retrieval, not reading: ask me to run a mixed mock interview across all three courses (gRPC, Go, Kafka), and where you're solid I'll record it so we both know it's locked in.