{"id":"8e94e18f-0f5e-4a44-a010-2ade878f4c69","task":"Apply a Kafka Connect SMT conditionally using Predicates to scope transforms to specific topics or record shapes","domain":"kafka.apache.org","steps":["Declare the predicate in the connector config with predicates=<name> and predicates.<name>.type set to a predicate class such as TopicNameMatches, HasHeaderKey, or RecordIsTombstone.","Configure the predicate's own parameters, such as predicates.<name>.pattern for a topic-name regex on TopicNameMatches.","Reference the predicate from the transform with transforms.<transformName>.predicate=<name> so the transform only applies to records matching it.","Optionally set transforms.<transformName>.negate=true to invert the predicate's match condition.","Chain multiple transforms with different predicates in the same connector to apply different logic conditionally per topic or record shape within one connector."],"gotchas":["Predicates were added in Kafka 2.6 (KIP-585); older Connect workers or bundled connector plugins that predate this may not support the predicate configuration keys.","A Filter SMT combined with a predicate silently drops non-matching records; verify the predicate logic in a non-production connector before applying it to a live topic to avoid silent data loss.","Predicate matching happens per-record inside the transform chain; it does not affect connector-level topic subscription, so the connector still consumes and processes all records even when most are filtered out downstream."],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/8e94e18f-0f5e-4a44-a010-2ade878f4c69"}