Skip to content
Orchard is an early preview — connector details below are illustrative while we iterate.
Streaming

Kafka

Attach a Kafka cluster and consume topics as DuckDB tables — no Connect cluster, no Flink job, no bespoke consumer to babysit.

Stable By Query.Farm Rust worker

What Kafka does

The Kafka connector turns any Kafka-compatible cluster (Apache Kafka, Redpanda, MSK, Confluent Cloud) into an attachable SQL catalog. Topics show up as tables you can SELECT from, filter, and join against the rest of your data.

Consume from an offset or tail the live tail of a topic, decode JSON or Avro payloads into typed columns, and write rows back to a topic with a table function. The worker manages consumer groups, schema-registry lookups, and backpressure so your SQL stays simple.

Highlights

  • Consume topics as tables with JSON or Avro decoding
  • Tail live messages or replay from a specific offset
  • Schema Registry integration for typed columns
  • Produce rows back to a topic from SQL
  • Works with Apache Kafka, Redpanda, MSK, and Confluent Cloud

Tables & functions it exposes

Once attached, the connector adds these objects to your SQL session.

Table kafka.topics
One row per topic with partition and offset metadata.
Table kafka.consumer_groups
Lag and assignment per consumer group.
Function read_topic(topic, from)
Stream a topic as rows, decoded to typed columns.
Function produce(topic, rows)
Write a result set back to a Kafka topic.
Secret kafka_credentials
SASL / TLS credentials stored as a DuckDB secret.

What teams build with Kafka

Ad-hoc debugging of what is actually flowing through a topic.

Join a live event stream against reference tables in your warehouse.

Backfill a table from a topic replay without standing up a pipeline.

Ready to attach Kafka?

Contact us for pricing and to get started, or talk to us about a custom connector for your stack.