I managed to stream CDC events from Postgres using Debezium Embedded version 1.6.2.Final
. Now I'm interested in flattening the events so only the after
data is sent.
As per the following article: https://debezium.io/documentation/reference/1.6/transformations/event-flattening.html#_configuration
I assume these are the properties I need to include in my Configuration
return io.debezium.config.Configuration.create()
...
.with("transforms", "unwrap")
.with("transforms.unwrap", "io.debezium.transforms.ExtractNewRecordState")
.build();
Then I create my DebeziumEngine like below:
this.debeziumEngine = DebeziumEngine.create(Json.class)
.using(cdcConfiguration.asProperties())
.notifying(...)
.build();
When I run the application I get the following error on startup:
io.debezium.DebeziumException: Cannot instatiate transformation 'unwrap'
at io.debezium.embedded.Transformations.getTransformation(Transformations.java:66) ~[debezium-embedded-1.6.2.Final.jar:1.6.2.Final]
at io.debezium.embedded.Transformations.<init>(Transformations.java:44) ~[debezium-embedded-1.6.2.Final.jar:1.6.2.Final]
at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:593) ~[debezium-embedded-1.6.2.Final.jar:1.6.2.Final]
at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:81) ~[debezium-embedded-1.6.2.Final.jar:1.6.2.Final]
at io.debezium.embedded.EmbeddedEngine$BuilderImpl.build(EmbeddedEngine.java:302) ~[debezium-embedded-1.6.2.Final.jar:1.6.2.Final]
at io.debezium.embedded.EmbeddedEngine$BuilderImpl.build(EmbeddedEngine.java:218) ~[debezium-embedded-1.6.2.Final.jar:1.6.2.Final]
at io.debezium.embedded.ConvertingEngineBuilder.build(ConvertingEngineBuilder.java:151) ~[debezium-embedded-1.6.2.Final.jar:1.6.2.Final]
Could somebody please point what I'm doing wrong?