gRPC Foundations
What gRPC is, the RPC model, why it rides on HTTP/2, and how it compares to REST. Start →
gRPC Foundations
What gRPC is, the RPC model, why it rides on HTTP/2, and how it compares to REST. Start →
Protocol Buffers
Messages & field numbers, scalar types, enums, oneof, maps, well-known types, and evolving schemas safely. Model →
Service Definition
Defining services, the four RPC types, designing method signatures, and the error/status model. Design →
Building Services
Code generation with protoc, implementing a server, writing a client, deadlines & cancellation. Build →
Streaming
Server, client, and bidirectional streaming — and the flow control that keeps them healthy. Stream →
Production Concerns
Interceptors, TLS & auth, metadata, load balancing, and health checking. Ship →
Ecosystem & Advanced
gRPC-Web in the browser, REST/JSON transcoding, versioning at scale, observability & testing. Extend →
Contract-first, always
Every lesson starts from the .proto — the language-neutral contract — then shows the generated server and client so you see how the schema drives the code.
Three languages side by side
Server and client examples in Go, Python, and Node (TypeScript) through synced tabs — pick your language once and follow it everywhere.
Design, not just syntax
Every topic covers the why and the trade-offs — when to stream, how to set deadlines, how to evolve a schema without breaking clients.
Diagrams that explain
The RPC lifecycle, HTTP/2 multiplexing, the four call types, and interceptor chains as theme-aware Mermaid diagrams. Bilingual (English / ไทย) with saved quiz progress.
This course’s facts, CLI flags, and generated-code patterns were checked against current tooling and official docs as of 2026-09-24: buf CLI 1.71 (buf.yaml/buf.gen.yaml version: v2, remote plugins on the BSR), protoc 33.x, Go 1.26 with google.golang.org/grpc (grpc.NewClient — grpc.Dial is deprecated in its favor) and google.golang.org/protobuf. Protocol Buffers Editions (latest released: Edition 2024) now supersede the proto2/proto3 syntax keywords going forward, but proto3 files remain fully supported and can be freely imported alongside edition files — the syntax = "proto3" used throughout this course keeps working unchanged.