Lesson 14 · Senior Kafka practice
Schema evolution and event contract safety
How to reason about changing JSON events safely when the repo does not rely on schema registry or Avro on the wire.
Your win: explain why event-schema changes are really distributed-contract changes, and how to talk about compatibility discipline in a JSON-based Kafka system.
Why this becomes a senior problem
Kafka decouples producers and consumers in time. That is one of its biggest strengths. It also means an event contract can live longer than one deploy. A producer can start writing a new payload shape while an older consumer is still reading the old assumptions.
That is the whole senior point here. Event evolution is not just a code-change problem. It is a runtime compatibility problem.
Why JSON flexibility cuts both ways
In a schema-registry-enforced environment, some compatibility discipline is checked for you. In this repo, payloads are JSON. That makes change easier to ship, but it also makes it easier to break something quietly if engineers treat payload changes like local refactors.
The safest changes are additive and tolerant. The dangerous ones are semantic breaks: removing fields consumers still need, changing meanings, or assuming every reader upgraded at the same time.
Revisit the repo map and design docs together
Use the repo map to confirm the wire shape is JSON, then connect that reality back to Kafka’s decoupling model.
Check yourself (from memory)
Q1. Why are event-schema changes a senior Kafka concern?
Sources. Repo Kafka map; Kafka design docs; curated course resources.