Set schema.history.internal (formerly database.history) to a durable Kafka topic so Debezium persists the full DDL history and can reconstruct table schemas at any binlog position.
Configure the Schema Registry with a compatibility mode (FORWARD or FULL) matching your evolution policy, so added nullable columns are accepted but removed required columns are rejected.
When a DDL event (ALTER TABLE) appears in the WAL, Debezium emits a schema change event before the next DML row event; downstream consumers that respect schema registry will automatically receive the updated Avro/Protobuf schema.
For breaking changes (column rename, type narrowing), coordinate a connector pause: stop the connector, apply the DDL, update the schema registry subject manually if needed, then restart.
Use the include.schema.changes=true connector property (where supported) to route DDL events to a dedicated topic separate from DML row events.
Test schema evolution in a staging environment by replaying the binlog against the updated schema before promoting to production.
Known gotchas
If the schema history topic is lost or truncated, the connector cannot reconstruct intermediate schemas and must perform a new snapshot to resync.
Column renames appear as a column drop plus a column add in most databases; Debezium will emit null for the new column name until the next full row image is captured.
Consumers using generated code (e.g., Avro specific records) will fail to deserialize records with an unknown schema version; always use generic record readers or regenerate code after schema changes.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp