Services Evolution: Required Is Forever
summary
Discusses concrete compatibility behaviors of Apache Avro and Google Protobuf versus JSON, showing Avro’s default of embedding the writer schema, Protobuf’s field-number+type wire format, varint and zigzag integer packing, and JSON’s implicit schema via validation middleware. Argues evolution forces optional-field bloat, explains the must ignore and must forward pattern for preserving unknown fields, warns that adding/removing required fields breaks clients and that major-version upgrades can take months to migrate.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 0:32Question
- 2:23Backwards Compatibility
- 3:37Forward Compatibility
- 5:58Compatibility
- 8:40Apache Aurora
- 10:29varian encoding
- 11:54zigzag encoding
- 13:46JSON encoding
- 15:06Tolerance
- 17:43Required Fields
- 20:03Conclusion
related talks
01h 13mChange Is Inevitable: Versioning Event-Driven Systems
16mStop Breaking the Proto! Designing for Change in an Microservices World
28mDesigning Payloads for Event-Driven Systems
54mOvercoming Service Communication Issues and Challenges
36mModifying gRPC Services Over Time [I]
16mJSON is Great, but Protobufs Make It Faster
29mBinary Protocols - The Current State of Affairs
30mDesigning Payloads for Event-Driven Systems
