Kafka connector

Kafka connector

Put Duraton behind your existing Kafka topics - a standalone consumer process that turns records into events, configured with Apache Kafka's own property names.

The Kafka connector is a standalone process you run next to your own Kafka. It joins a consumer group, reads the topics you name, and sends each record to Duraton as an event. Your workflows stop being Kafka consumers; they become event handlers with durable state, retries, and a run history.

If your broker is reachable from Duraton, you can skip the process entirely: a native source is the same consumer configured in your workspace, and every page here applies to it unchanged.

Duraton is only ever a consumer. It never produces, never owns your topics, and never becomes a dependency of your cluster.

Start here

If you want toRead
Get a record into a run for the first timeQuickstart
Run the consumer inside Duraton instead of deploying one, or move an existing connector inwardNative sources
Understand what a record turns intoConfiguration
Drop records you do not wantFiltering
Know when an offset is committed, and what happens to a record Duraton refusesDelivery
Send the outcome back to a topic another consumer readsPublishing results back
Check a file, or see what your own records become, without sending anythingDiagnostics
Run a broker, a UI and the connector on your laptopLocal stack
Put it in KubernetesDeploying
Authenticate to the clusterSecurity
Know what to alert onObservability
Not be surprised in productionBehaviour worth knowing
Understand why a property was rejectedWhat the connector refuses
Look up a keyduraton: reference - kafka: reference
Copy something close to your caseWorked examples

The boundary

Duraton is not a broker and not a stream processor. If you need to reprocess last Tuesday from offset zero, that is Kafka. If you need the work triggered by that message to actually finish, that is Duraton.

Concretely, the connector does not:

  • implement the Kafka wire protocol as a server, or accept produces
  • own your partitions, your offsets, or your retention
  • own rewind
  • run a Schema Registry
  • do stream processing: no joins, no windows, no aggregation

Not owning those does not mean not exposing them. The connector is an ordinary consumer group member with ordinary committed offsets, so rewind is still yours: kafka-consumer-groups --reset-offsets against the group id you configured does what it always did, and kafka-consumer-groups --describe shows lag the way it does for any other consumer.

The dead-letter topic goes away

A record that Duraton accepts becomes a run. If the work fails, you get a failed run with its terminal error and its full step history, replayable from the console - not an opaque payload on a side topic waiting for someone to write a drain consumer. The one thing a dead-letter topic still covers is a record Duraton will never accept at all, and that is the poison policy, which can write one if you want it. What goes away is the dead-letter topic as the default home for failure.

Shape of the deployment

  your producers  -->  your Kafka topics  -->  connector  -->  POST /events  -->  durable runs
                              ^                     |
                              +--- commit offset ---+
                                 (only once Duraton has accepted the event)

One connector process is one consumer group member. Run more replicas of the same group.id and Kafka spreads the partitions across them, exactly as it would for any consumer you wrote yourself. Nothing about the connector is stateful: the offset in Kafka is the whole of its durable state.

Next

  • Quickstart - a record to a run in four commands.
  • Native sources - the same consumer without the process, and how to migrate.
  • Configuration - the two blocks, and what a record becomes.
  • Delivery - when the offset moves, and what happens when it cannot.

On this page