Stop Breaking Production – Schema Evolution Demystified
Session Abstract
You deploy a harmless-looking change… and production starts failing: consumers crashing, events rejected. What went wrong? In this talk, we demystify message compatibility across events and APIs, showing how to evolve schemas safely without breaking your systems.
Session Description
This session explores how and why message compatibility breaks in real-world systems: across events, commands, APIs, and persisted state. We’ll clarify backward, forward, and full compatibility, and map them to concrete schema evolution rules (what you can safely add, remove, or change, and what you can’t). You’ll see practical rollout strategies (consumer-first vs. producer-first), and how mistakes lead to subtle, production-breaking issues. We’ll also discuss the trade-offs and decisions you face when message consumption fails in production. Finally, we’ll compare JSON, Protobuf, and Avro through the lens of compatibility guarantees, and demonstrate how a schema registry and code generation help enforce contracts at scale. You’ll leave with actionable patterns and mental models to evolve distributed systems confidently without breaking production.