A topic outlives every program that writes to it, yet the broker only stores bytes: one renamed field breaks every reader, and bad records stay until retention removes them. A schema registry makes the contract explicit:
every schema version is stored once, under a subject, with a global ID;
a new version is accepted only if it passes the subject's compatibility rule;
each record carries a 5-byte prefix (a zero magic byte and the 4-byte ID), never the schema.

Serializers cache the ID after one lookup; deserializers fetch each writer's schema once by ID, so a consumer reads old and new versions side by side and the registry stays off the hot path.