{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://api-evangelist.com/schemas/debezium/debezium-change-event.json", "title": "Debezium Change Event", "description": "Schema for a Debezium change data capture event envelope, containing before/after state and source metadata.", "type": "object", "properties": { "schema": { "type": "object", "description": "The Kafka Connect schema for the change event", "properties": { "type": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object" } }, "optional": { "type": "boolean" }, "name": { "type": "string" } } }, "payload": { "type": "object", "description": "The change event payload", "properties": { "before": { "description": "Row state before the change (null for inserts)", "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "after": { "description": "Row state after the change (null for deletes)", "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "source": { "type": "object", "description": "Source metadata about the change event", "properties": { "version": { "type": "string", "description": "Debezium version" }, "connector": { "type": "string", "description": "Connector type (mysql, postgresql, mongodb, etc.)" }, "name": { "type": "string", "description": "Logical name of the database server" }, "ts_ms": { "type": "integer", "description": "Timestamp of the change in the source database (milliseconds)" }, "snapshot": { "type": "string", "description": "Whether this event is from a snapshot" }, "db": { "type": "string", "description": "Database name" }, "schema": { "type": "string", "description": "Schema name" }, "table": { "type": "string", "description": "Table name" }, "txId": { "type": "integer", "description": "Transaction ID" }, "lsn": { "type": "integer", "description": "Log sequence number (PostgreSQL)" }, "file": { "type": "string", "description": "Binlog filename (MySQL)" }, "pos": { "type": "integer", "description": "Binlog position (MySQL)" }, "row": { "type": "integer", "description": "Row within the event" } } }, "op": { "type": "string", "enum": ["c", "u", "d", "r", "t"], "description": "Operation type: c=create, u=update, d=delete, r=read (snapshot), t=truncate" }, "ts_ms": { "type": "integer", "description": "Timestamp when Debezium processed the event (milliseconds)" }, "transaction": { "type": "object", "description": "Transaction metadata", "properties": { "id": { "type": "string" }, "total_order": { "type": "integer" }, "data_collection_order": { "type": "integer" } } } }, "required": ["op", "source"] } }, "required": ["payload"] }