Conduit moves events between every system in your company in under 3ms. Exactly-once delivery, partition ordering, schema evolution — without the JVM, ZooKeeper, or 47-page tuning guide.
Tested on a single c6g.2xlarge instance (8 vCPUs, 16GB RAM). 1KB messages, 8 producers, 3 consumers, replication factor 3. Numbers are medians across 10 runs.
Native Go and Rust clients. Strong types, schema validation built in, zero reflection magic.
import "conduit-io/go-client" func main() { client := conduit.Connect("localhost:9092") defer client.Close() // Produce with exactly-once semantics client.Produce("payments", &conduit.Message{ Key: []byte("order-4821"), Value: []byte(`{"amount":99.50,"currency":"USD"}`), }) // Consume with automatic offset management consumer := client.Subscribe("payments", conduit.ConsumerOpts{ Group: "billing-service", StartOffset: conduit.Latest, }) for msg := range consumer.Messages() { process(msg) msg.Ack() } }
use conduit_client::{Client, Message}; async fn main() -> Result<()> { let client = Client::connect("localhost:9092").await?; // Produce with exactly-once semantics client.produce("payments", Message { key: "order-4821".into(), value: r#"{"amount":99.50,"currency":"USD"}"# .into(), }).await?; // Consume with automatic offset management let mut consumer = client .subscribe("payments") .group("billing-service") .start_offset(Offset::Latest) .build().await?; while let Some(msg) = consumer.next().await { process(&msg).await?; msg.ack().await?; } Ok(()) }
Single binary. No JVM. No ZooKeeper. Raft consensus built in.
Sensible defaults for everything. Override only what you need. No XML, no YAML sprawl, no 47-page tuning guide.
CONDUIT_BROKER_PORT=9092 works everywhere. Twelve-factor ready.
# Conduit broker configuration # Most values have sensible defaults — override only what you need [broker] bind = "0.0.0.0:9092" data_dir = "/var/lib/conduit" node_id = 1 [cluster] seeds = ["10.0.1.1:9092", "10.0.1.2:9092"] replication_factor = 3 [storage] segment_size = "512MB" retention = "7d" [storage.tiered] enabled = true backend = "s3" bucket = "conduit-archive" tier_after = "24h" [schema_registry] enabled = true compatibility = "backward" [observability] metrics_port = 9093 prometheus = true
Built-in Prometheus metrics, structured logs, distributed tracing. The dashboard you wished Kafka had.
One curl. One binary. No dependencies.
conduit topic create payments --partitions 6