Messaging
Optional client Kafka. Connect does not ship a bus, outbox, or DLT.
Kafka is optional and client-owned. Connect does not ship a broker, outbox, DLT, or stream product. Redis is required for locks and idempotency.
When a landing consumes a client bus, set CONNECT_EVENTS_KAFKA_ENABLED=true and CONNECT_KAFKA_BOOTSTRAP_SERVERS. Empty brokers means no consume.
Patterns
| Pattern | Behavior |
|---|---|
| Message start | Workflow spec.topic binds a Camel Kafka consumer hop on the client’s topic |
| Redelivery | noErrorHandler + breakOnFirstError; workflowId = messageId maps to Temporal AlreadyStarted |
| Idempotent consume | Redis claim when a hop reads the client bus |
| Correlation | id, correlationId, optional traceId on the record |
If this fails
| Symptom | Cause |
|---|---|
| No consume routes | Flag off or brokers blank — that is a valid landing |
| Duplicate workflow start | Same messageId redelivered; Temporal rejects AlreadyStarted |