Mission: Make Conduit the default way to move and transform data in real time — a Kafka Connect replacement that works with any broker (Kafka, NATS, Redpanda, Hazelcast, Pulsar) or no broker at all, runs anywhere from a laptop to Kubernetes to embedded inside your application, and lets you build connectors and processors in real programming languages.
This roadmap is a living document. Items move as we learn. Dates are targets, not promises — but the monthly release cadence is a promise.
- Apache-2.0, forever. No relicensing, no enterprise-only connectors, no rug pulls. Open governance with a public contributor ladder.
- Real languages, no bespoke DSL. Transformations are code you can test, version, and reuse — written in Python, Rust, TypeScript, or Go and compiled to WASM — not a config-language dialect you have to learn. Prebuilt processors cover the common 90% with zero code.
- Broker-neutral. Conduit is Switzerland. Every streaming provider is a peer; none is privileged. No broker required at all for point-to-point pipelines.
- Boring to operate. Single static binary, no JVM, no ZooKeeper, no worker cluster. Observability built in. Replay and recovery are first-class verbs, not incident-response archaeology.
- Migration is a product. Moving off Kafka Connect should be a command, not a quarter-long project.
- Agent-legible by design. Structured output, deterministic machine-actionable errors, and an MCP server — because the next generation of users includes AI agents building and repairing pipelines.
- Right-sized state. Conduit handles the stateful processing most pipelines actually need (dedup, enrichment, simple windows) without distributed-snapshot complexity. For heavy stateful workloads, Conduit integrates with streaming SQL engines rather than reinventing them.
- Single-node engine, scale-out by scheduling. The engine never grows membership protocols, leader election, or consensus. Distribution — running many pipelines across many instances, or one hot pipeline across several — is a scheduling problem solved a layer above (operator/control plane). This keeps the engine embeddable, boring to operate, and free of rebalance-protocol misery.
- Open core with a bright line. The engine, all connectors, SDKs, registry, CLI, UI, Helm chart, and the Kubernetes operator are Apache-2.0 — a team can run Conduit in production at any scale for free, forever. Commercial products live above the open source (org-scale governance and federation), never inside it, and nothing shipped as open source is ever moved behind a paywall.
Goal: an unmistakable signal that Conduit is active, maintained, and shipping.
- Triage all open issues and PRs — every item closed, merged, or labeled with a decision
- Cut v0.15.0 stable off the running nightly train: dependency upgrades, security patches, bug fixes, Go version bump
- Publish this roadmap + public GitHub Project board with milestones — roadmap published; Project board still to do
- Governance doc: Apache-2.0 commitment, maintainer ladder, decision process
- Seed
docs/architecture-decision-records/with the foundational decisions already made: single-node engine (distribution via the scheduling layer), no bespoke DSL, WASM component model, local-state-only - Begin CNCF Sandbox application process
- Revive Discord; monthly community call on a public calendar
- Hold the monthly release train (cadence over scope) — v0.15, v0.16, v0.17 shipped; v0.18 nightly in progress — cadence held 3+ months
Definition of done: zero untriaged issues, v0.15.0 stable shipped, roadmap and governance published.
Status — 2026-07-04: Halfway through Phase 0. Shipped: v0.15.0, the first release under
active maintenance — dependency + security refresh (~90 updates incl. x/net), Go 1.25, four
provisioning/connector bug fixes (#1999, #2255, #1274, #2061) and a metrics perf win (#2268);
triage complete; governance and the four foundational ADRs published. Release tooling was hardened
along the way — CI now cross-builds linux/386 and the release Docker image, so release-only build
breaks are caught on PRs. Remaining: public Project board, CNCF Sandbox application, and
community (Discord + monthly call) — the non-code items that pair with the launch announcement, and
recruiting a co-maintainer (the gate on the deferred Tier-1 lifecycle work: #1659, arch-v2).
Goal: the best first-hour and first-week experience of any data integration tool — for humans and for their agents.
-
brew install conduit/curl | sh/ single-binary downloads for all platforms — partial: binary + deb/rpm shipped; brew referenced; no curl|sh installer -
conduit init— scaffolds a working pipeline (e.g., Postgres CDC → file/S3) with zero manual config -
conduit init --template <name>— template gallery of one-command recipes - Refreshed built-in UI (a rebuild, not a polish — see below): live record flow, per-stage
inspection, pipeline graph — partial:
conduit-uirebuild in progress; not yet embedded in engine binary
-
conduit pipeline validate | lint | dry-run -
conduit doctor— environment and config diagnostics - Hot-reload of pipeline configs in dev mode
-
conduit pipeline dev— local dev loop with record inspector -
--jsonstructured output on every command - Deterministic, machine-actionable errors: error code + failing config path + suggested fix
- Official Conduit MCP server: agents can scaffold, validate, deploy, inspect, and repair pipelines
-
llms.txt+ single-page condensed documentation dump for LLM context -
conduit generate "<natural language>"— AI-assisted pipeline generation from plain English
-
conduit connector new --lang go|python|rust|ts— full repo: SDK wiring, tests, CI, release workflow, acceptance-test harness — partial: Go complete; Python is the v0.19 SDK build (ahead of Rust); Rust deferred until Python's tagged release; TS not built -
conduit processor new— same treatment - Target: first working custom connector in under 30 minutes
- WASM connectors (today: WASM processors only) — in-process, sandboxed, single portable artifact, no gRPC sidecar
- WASI Preview 2 / component model adoption
- Language SDK rollout, in priority order (Go → Python → Rust → TS):
- Go — reference SDK (exists; keep current with protocol)
- Python — gRPC standalone path first (WASM fast-follow); first
libconduitbinding. Now the v0.19 connector-SDK build (it took v0.19's SDK slot, ahead of Rust). - Rust — full WASM component-model path; proves the WASM connector architecture. SDK build deferred until Python's tagged release (not a merge to main), honoring the Go → Python → Rust → TS order.
- TypeScript — WASM via componentize-js
- Java: served via the Kafka Connect wrapper short-term; native SDK is a Phase 3+ decision
- C# / Ruby: demand-driven only — not speculatively built
- Public registry (signed):
conduit connectors install/uninstall/audit/bundle— shipped in v0.18 with a signed registry and seed connectors; issue #2625 should close. Operational note (2026-08-21): the published index must be re-signed inside the client's 7-day freshness window or everyinstallfails withregistry.index_stale. Nothing re-signed it unattended, so installs are refusing today — the heartbeat and a 72-hour staleness alarm are inconduit-connector-registry#28 - Community publishing via GitHub Action + signing
- Registry web UI with search, verified badges, download stats
- Template gallery shipped with the registry — partial:
conduit pipelines init --templateships five templates (generator-log,generator-file,postgres-s3,postgres-cdc-kafka,postgres-pgvector-rag). Of the templates named when this line was written, onlypostgres-pgvector-ragexists;postgres-iceberg,mysql-snowflake,shopify-warehouseandkafka-clickhouseare still outstanding, and Iceberg is itself a Phase-2 item below.postgres-pgvector-ragalso depends on a pgvector destination connector that is not yet registry-installable at all —conduit-connector-pgvectorhas no tagged release, not just a stale index — so today the template's prerequisite note points at a local build instead ofconduit connectors install pgvector. Revisit once that repo cuts a first tagged release. - Community-contributed templates with the same publishing flow as connectors
- Env-var configuration for all engine settings
-
/healthzand/readyzendpoints; Prometheus metrics endpoint - Graceful SIGTERM drain (checkpoint, then exit) — see data-integrity invariants
- Official minimal container image; docker-compose quickstart — partial: Dockerfile shipped; no docker-compose quickstart
- systemd unit file for VM deployments
-
conduit run --pipelines <dir>— run a directory of pipeline configs (GitOps-friendly) -
deploy/directory with documented examples: docker-compose, systemd, ECS task definition, Nomad job spec (examples, not supported products — promoted only on demand)
- Design doc + protocol RFC: partition claims — sources declare their partitionable units
so a scheduler can run one hot pipeline across multiple instances. Touches
conduit-connector-protocol, so the seam ships early to avoid a breaking rev later
- Stable, documented Go library API for embedding Conduit in applications — shipped: the root
github.com/conduitio/conduitpackage (New/Run/Stop/Close/Importplus a pipelines-in-code builder) on a semver-committed, frozen import path, with an embedding guide - Non-Go embed bindings as gRPC client libraries over the control-plane API, Python first then
Node — the same client code targets a local subprocess or a remote, already-deployed engine. The
data path never crosses the host boundary, so a C-ABI
libconduitis a demand-gated escape hatch only, not the base for bindings — see ADR 20260724 - Python client library (v0.20 anchor); Node.js to follow (Java/Ruby on demand)
Goal: switching from Kafka Connect is a command; keeping a RAG index fresh is 10 lines of YAML.
-
conduit migrate kafka-connect— reads Kafka Connect worker/connector JSON (Debezium, JDBC, S3, etc.), emits Conduit pipeline config + compatibility report; never silently drops config it can't translate - SMT compatibility pack: 1:1 processor equivalents for standard Kafka Connect SMTs
- Hardened Kafka Connect wrapper: run existing KC connector JARs inside Conduit for day-one catalog parity (also the Java-team on-ramp)
Production-grade change data capture — snapshot + streaming, schema evolution, heartbeats, tombstones:
- PostgreSQL (harden existing)
- MySQL
- MongoDB
- SQL Server
- Oracle
The canonical pipeline — CDC → chunk → embed → vector store — as a headline Conduit workload:
- Chunking processors (document splitting strategies for RAG)
- Embedding processors: OpenAI, Voyage, local models
- Vector destinations: pgvector, Qdrant, Pinecone, Turbopuffer
- "Keep your RAG index fresh from Postgres" quickstart + template
- Positioning docs: Conduit as the data layer for AI applications
- Best-in-class Apache Iceberg destination: upserts, compaction-friendly writes, catalog support (REST, Glue, Nessie)
- Headline use case: operational DB → lakehouse in real time, no Kafka required
- Snowflake
- S3 / GCS / Azure Blob with Parquet support
- ClickHouse
- BigQuery
- Databricks / Delta Lake
- Elasticsearch / OpenSearch
- NATS JetStream
- Redpanda (native, tuned)
- Kinesis / SQS / SNS
- Google Pub/Sub
- Redis
- HTTP / webhooks (source + destination)
- DuckDB / MotherDuck
- Helm chart: Deployment/StatefulSet, pipeline configs via ConfigMap or git-sync, HPA hooks, ServiceMonitor — covers static pipeline-to-instance assignment before the operator exists
- Confluent Schema Registry wire compatibility (Avro, Protobuf, JSON Schema)
- Schema contracts & drift policy: configurable behavior on schema drift — halt, DLQ, or auto-evolve — with drift surfaced in the UI
- Dead-letter queues
- Documented delivery semantics per source/destination pair
- Pipeline recovery, retry/backoff policies
- Replay & backfill as first-class verbs:
conduit pipeline replay --from <position>, snapshot re-runs, offset inspection and reset in CLI and UI - Secrets management: env, Vault, cloud KMS
Goal: capture the 80% of stream-processing workloads that don't need Flink, and run credibly at enterprise fleet scale.
Right-sized stateful processing — local state (embedded KV store), checkpointed with the pipeline, no distributed snapshots or state backends to tune:
- Deduplication with TTL
- Lookup/enrichment tables: cached reference data from a database or topic
- Tumbling and sliding window aggregations (counts, sums, simple rollups)
- Clear documentation of what this is (most real-world jobs) and isn't (large joins, complex event-time processing)
- First-class ingest/egress integrations and reference architectures with RisingWave, Materialize, and ClickHouse
- Documented pattern: "Conduit + streaming SQL engine replaces Kafka Connect + Flink"
The engine stays single-node (Principle 8); distribution is scheduling:
- Kubernetes operator (Apache-2.0, always):
PipelineCRD, bin-packing of pipelines across pods, health-based rescheduling, lag-based autoscaling - Checkpoint-aware rolling upgrades: drain → checkpoint → reschedule, no data interruption during version bumps
- Hot-pipeline parallelism: scheduler assigns partition claims (protocol seam from Phase 1) so one pipeline runs across multiple instances; Kafka-consumer-group sources get this natively
- Active/passive HA: instance dies → scheduler reassigns → pipeline resumes from checkpoint (correct by construction via the data-integrity invariants; no consensus, no warm standbys in v1)
- Lightweight console that registers many Conduit instances: fleet-wide visibility, health, versions
- GitOps-native: console reads state; pipeline config stays in git
- Shared scheduling brain with the operator — the operator is the control plane's Kubernetes backend
- Rolling upgrades across a fleet
- Published, reproducible benchmarks (via benchi) vs Kafka Connect and other stream processors, updated per release
- Pipeline-wide batching; allocation reduction; profiling as CI gate
- Investigate Arrow-based internal record format for columnar destinations
- Terraform provider for the Conduit API: pipelines, connectors, processors as
declarative resources. Infrastructure Terraform (EKS modules, etc.) stays in
deploy/as examples, not products - Production reference architectures
- OpenTelemetry traces + metrics, prebuilt Grafana dashboards
-
conduit connector generate --from-openapi <spec>— AI-assisted connector scaffolding from API specs
- Getting-started rewrite around the 5-minute path; per-broker quickstarts (Kafka, NATS, Redpanda, Hazelcast, none)
- "Migrating from Kafka Connect" section: concept mapping (worker→instance, task→pipeline, SMT→processor, converter→schema), per-connector guides for the top 10 KC connectors
- "AI data pipelines with Conduit": RAG sync, embedding pipelines, vector store patterns
- Connector development tutorial per supported language (Go, Python, Rust, TS)
- Processor cookbook: 30+ copy-paste recipes
- Embedding guide per language
- Honest comparison pages: vs Kafka Connect, vs Redpanda Connect / Bento, vs Flink (when you need it, when you don't), vs batch ELT tools
- Architecture deep-dive: ordering guarantees, end-to-end ack propagation, delivery semantics, state & checkpointing model
-
llms.txtand LLM-optimized doc formats maintained alongside human docs
Conduit's historical UI was Ember-based and later de-emphasized. "Refreshed built-in UI" means rebuild, not polish — built modern and agent-friendly from scratch, on the same API the CLI and MCP server use (no divergent code paths). UI surfaces by phase: Phase 1 = built-in single-instance UI (live record flow, per-stage inspection, pipeline graph) + registry web UI; Phase 2 = schema-drift visibility, replay/offset management; Phase 3 = fleet console (multi-instance). Deeper org-scale console features are the commercial product.
We're an open-core project and we'd rather tell you where the line is than let you guess.
Apache-2.0, forever — everything a team needs to run Conduit in production at any scale: engine · all connectors and processors · all SDKs · registry and templates · CLI · built-in UI · Helm chart · Kubernetes operator (scheduling, rescheduling, autoscaling, checkpoint-aware rolling upgrades) · fleet console core
Commercial (separate product, separate repo) — what an organization needs to govern Conduit at fleet scale: multi-cluster/multi-region federation · SSO/SAML/SCIM, RBAC, audit logs · data lineage, PII policy packs, org-level schema-contract enforcement, compliance reporting · cross-fleet upgrade orchestration, SLA alerting, cost/throughput analytics · support and SLAs · air-gapped and FIPS-hardened distributions
The one-way ratchet: nothing shipped as open source will ever be moved behind a paywall. Commercial features may become open source over time; the reverse never happens.
- Check the GitHub Project board for issues labeled
good first issueandhelp wanted - Build a connector — the scaffolding makes it a weekend project, and the registry gets it distributed
- Contribute a pipeline template — the gallery is community-driven
- Join the community call and Discord
- Everything here is open for discussion; open an issue against this roadmap
North-star metrics we hold ourselves to: time-to-first-pipeline < 5 minutes · time-to-first-custom-connector < 30 minutes · an AI agent can go from zero to a running pipeline using only the MCP server and llms.txt · monthly release cadence · zero untriaged issues older than 14 days.