Stop Breaking the Proto! Designing for Change in an Microservices World
summary
Explains concrete rules: apply semver to protos and put major version in the proto package so gRPC can multiplex v1/v2 on the same port; use linters like google AIP linter and protolock to catch compatibility breaks; keep request/response types operation‑specific and prefer optional fields to add features without breaking clients; never pass around generated proto classes—use a three-module layout (api/adapters, implementation with plain DTOs, dependencies) and run v-current, v-previous and v-next side-by-side.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:22Agenda
- 1:22What is a Service
- 1:55Three Aspects of a Service
- 3:00Cohesion
- 3:37Techniques
- 3:49Semantic Versioning
- 4:29Major Version
- 5:29Proto Style
- 6:06Service Contracts
- 8:27Never pass around generated protoclasses
- 9:35Three module layout
- 11:18Summary
- 11:39Managing Contract Change
- 13:56Multiple Contract Versions
- 15:05Wrap Up
- 15:26Outro








