From de692fb1e51d43539d8ab6f1d3f7dd6bf9e4c007 Mon Sep 17 00:00:00 2001 From: Jonas Thelemann Date: Fri, 14 Aug 2026 02:52:00 +0200 Subject: [PATCH 1/4] feat(debezium)!: consolidate cdc capture on the outbox table --- .../debezium/configurations/entrypoint.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/development/debezium/configurations/entrypoint.sh b/src/development/debezium/configurations/entrypoint.sh index 4a61818f..32946a79 100755 --- a/src/development/debezium/configurations/entrypoint.sh +++ b/src/development/debezium/configurations/entrypoint.sh @@ -27,8 +27,18 @@ curl --fail --output /dev/null --silent --show-error \ "database.password": "'"$POSTGRES_PASSWORD"'", "database.user": "'"$POSTGRES_USER"'", "plugin.name": "pgoutput", - "table.include.list": "vibetype.event,vibetype.upload,vibetype_private.notification", - "topic.prefix" : "vibetype" + "table.include.list": "vibetype_private.outbox,vibetype.upload", + "topic.prefix" : "vibetype", + "transforms": "outbox", + "transforms.outbox.type": "io.debezium.transforms.outbox.EventRouter", + "transforms.outbox.route.by.field": "channel", + "transforms.outbox.route.topic.replacement": "vibetype.outbox.${routedByValue}", + "transforms.outbox.table.field.event.key": "id", + "transforms.outbox.table.field.event.payload": "payload", + "transforms.outbox.predicate": "isOutbox", + "predicates": "isOutbox", + "predicates.isOutbox.type": "org.apache.kafka.connect.transforms.predicates.TopicNameMatches", + "predicates.isOutbox.pattern": "vibetype\\.vibetype_private\\.outbox" }' echo "PostgreSQL connector '$CONNECTOR_NAME' is up to date." From ac230ce701a92029352c89c22406b5f215ea62fb Mon Sep 17 00:00:00 2001 From: Jonas Thelemann Date: Fri, 14 Aug 2026 03:29:00 +0200 Subject: [PATCH 2/4] feat(debezium)!: drop direct upload capture now that it routes through outbox --- src/development/debezium/configurations/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/development/debezium/configurations/entrypoint.sh b/src/development/debezium/configurations/entrypoint.sh index 32946a79..caa79593 100755 --- a/src/development/debezium/configurations/entrypoint.sh +++ b/src/development/debezium/configurations/entrypoint.sh @@ -27,7 +27,7 @@ curl --fail --output /dev/null --silent --show-error \ "database.password": "'"$POSTGRES_PASSWORD"'", "database.user": "'"$POSTGRES_USER"'", "plugin.name": "pgoutput", - "table.include.list": "vibetype_private.outbox,vibetype.upload", + "table.include.list": "vibetype_private.outbox", "topic.prefix" : "vibetype", "transforms": "outbox", "transforms.outbox.type": "io.debezium.transforms.outbox.EventRouter", From f146435f8abba1e825a6514b2526db028cc305bb Mon Sep 17 00:00:00 2001 From: Jonas Thelemann Date: Fri, 14 Aug 2026 04:07:00 +0200 Subject: [PATCH 3/4] feat(debezium)!: partition outbox topics by aggregate_id --- src/development/debezium/configurations/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/development/debezium/configurations/entrypoint.sh b/src/development/debezium/configurations/entrypoint.sh index caa79593..f15caea6 100755 --- a/src/development/debezium/configurations/entrypoint.sh +++ b/src/development/debezium/configurations/entrypoint.sh @@ -33,7 +33,7 @@ curl --fail --output /dev/null --silent --show-error \ "transforms.outbox.type": "io.debezium.transforms.outbox.EventRouter", "transforms.outbox.route.by.field": "channel", "transforms.outbox.route.topic.replacement": "vibetype.outbox.${routedByValue}", - "transforms.outbox.table.field.event.key": "id", + "transforms.outbox.table.field.event.key": "aggregate_id", "transforms.outbox.table.field.event.payload": "payload", "transforms.outbox.predicate": "isOutbox", "predicates": "isOutbox", From 7393b60d7d46d0636787846396760335ddf62175 Mon Sep 17 00:00:00 2001 From: Jonas Thelemann Date: Fri, 14 Aug 2026 04:44:00 +0200 Subject: [PATCH 4/4] feat(debezium)!: route outbox topics by aggregate_type instead of type --- src/development/debezium/configurations/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/development/debezium/configurations/entrypoint.sh b/src/development/debezium/configurations/entrypoint.sh index f15caea6..d9c6643e 100755 --- a/src/development/debezium/configurations/entrypoint.sh +++ b/src/development/debezium/configurations/entrypoint.sh @@ -31,7 +31,7 @@ curl --fail --output /dev/null --silent --show-error \ "topic.prefix" : "vibetype", "transforms": "outbox", "transforms.outbox.type": "io.debezium.transforms.outbox.EventRouter", - "transforms.outbox.route.by.field": "channel", + "transforms.outbox.route.by.field": "aggregate_type", "transforms.outbox.route.topic.replacement": "vibetype.outbox.${routedByValue}", "transforms.outbox.table.field.event.key": "aggregate_id", "transforms.outbox.table.field.event.payload": "payload",