CloudEvents is a "specification for describing event data in a common way". It helps with exchanging events in an interoperable way, defining "transport bindings" for protocols like HTTP, AMQP and more (Kafka is currently being worked on).
We should explore how Debezium could support CloudEvents; on first thought, one way could be to optionally wrap the existing Debezium messages into a CloudEvents envelope (with the Debezium message going into the "data" field of that envelope). There are some open questions, though:
- How is the interaction with the schema?
- Would Avro be supported?
- Should the message key go into a custom field of the envelope (see also related discussion in the Kafka transport binding discussion)
I think in the first step this wouldn't change the way how Debezium is run, i.e. it'll send messages to Apache Kafka, from where other CloudEvents-aware consumers can pick up the events.