Add the SMT to the connector config: transforms=route,transforms.route.type=io.debezium.transforms.ByLogicalTableRouter
Set transforms.route.topic.regex to a regex matching the default Debezium topic pattern (e.g., server\.database\.(.+)) and transforms.route.topic.replacement to a target topic name template using capture groups
Set transforms.route.key.enforce.uniqueness=true and transforms.route.key.field.name=__dbz__physicalTableIdentifier to add a field disambiguating the source table when multiple tables route to the same topic
Chain the routing SMT before ExtractNewRecordState in the transforms list so routing uses the original envelope topic, not the flattened record
Validate topic names comply with Kafka naming rules (no dots if Schema Registry is used, as dots conflict with subject naming conventions)
Known gotchas
If multiple source tables route to a single Kafka topic with different schemas, Schema Registry subject naming strategy must be set to TopicRecordNameStrategy to avoid schema conflicts between tables
The ByLogicalTableRouter SMT changes the topic name but does not repartition; if downstream consumers co-partition by table name, additional configuration is required
Regex replacement is applied to the full topic string including the server name prefix; an overly broad regex can accidentally match and reroute system or heartbeat topics
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp