Handle DDL and Schema Evolution

Expected sequence

When a table definition changes and DDL capture is enabled, the stream can deliver the DDL record and then updated object metadata and table-specific DML schema before subsequent records that use the new definition. The exact batching and order across WebSocket messages are implementation details; consumers must handle a schema or metadata record whenever it appears.

Compatible and incompatible changes

Change Typical consumer action
Add nullable column Accept the new field and update the downstream schema asynchronously or dynamically.
Add non-null column Confirm default/backfill behavior before applying records.
Drop column Stop writing the field; preserve historical downstream data according to retention policy.
Rename column Treat as drop plus add unless a governed mapping states otherwise.
Change JSON primitive type or source precision Validate conversion, precision, and downstream compatibility before continuing.
Change key columns Rebuild idempotency, merge, and delete logic before consuming records under the new key.

DDL handling policy

Schema registry integration

A consumer can publish in-band JSON Schema records to an enterprise schema registry. Preserve the original id, associate it with the Data Stream and deployment, and version changes rather than overwriting historical schema definitions. The registry complements the runtime schema; it does not replace checkpoint or source-trail recovery.