Redpanda — Kafka-Compatible Streaming Platform Without JVM
Redpanda is a Kafka-compatible streaming data platform written in C++. It is a drop-in replacement for Kafka that is simpler to operate — no JVM, no ZooKeeper, single binary deployment — with lower latency and built-in schema registry.
What it is
Redpanda is a streaming data platform written in C++ that provides full Kafka API compatibility. It is a drop-in replacement for Apache Kafka that eliminates the JVM, ZooKeeper, and the operational complexity they bring. Redpanda ships as a single binary with a built-in schema registry, HTTP proxy, and admin API.
Redpanda is designed for teams running Kafka workloads who want simpler operations, lower tail latency, and fewer dependencies.
How it saves time or tokens
Kafka deployments require tuning JVM garbage collection, managing ZooKeeper ensembles, and handling the operational overhead of a multi-process system. Redpanda eliminates all of that. A single binary replaces the Kafka broker, ZooKeeper, schema registry, and REST proxy. Deployment goes from managing 4+ processes to 1. The C++ implementation also provides lower p99 latency because there are no GC pauses.
How to use
- Install the rpk CLI and start a single-node cluster:
# macOS
brew install redpanda-data/tap/redpanda
# Docker single-node
docker run -d --name redpanda \
-p 9092:9092 -p 8081:8081 -p 8082:8082 -p 9644:9644 \
docker.redpanda.com/redpandadata/redpanda:latest \
redpanda start --smp 1 --memory 1G --overprovisioned
- Create a topic and produce messages:
rpk topic create my-topic --partitions 3
echo 'hello redpanda' | rpk topic produce my-topic
rpk topic consume my-topic
- Point your existing Kafka clients at
localhost:9092. No client library changes needed since Redpanda speaks the Kafka wire protocol natively.
Example
Migrating from Kafka to Redpanda typically requires only changing the broker address:
from kafka import KafkaProducer, KafkaConsumer
# Before (Kafka)
# producer = KafkaProducer(bootstrap_servers='kafka:9092')
# After (Redpanda) — same client library, just change the address
producer = KafkaProducer(bootstrap_servers='redpanda:9092')
producer.send('my-topic', b'hello from redpanda')
producer.flush()
consumer = KafkaConsumer('my-topic', bootstrap_servers='redpanda:9092')
for msg in consumer:
print(msg.value)
Related on TokRepo
- DevOps tools — Browse infrastructure and streaming tools
- Self-hosted tools — Explore self-hosted data infrastructure
Common pitfalls
- Assuming Redpanda supports every Kafka feature identically. While the Kafka API compatibility is high, some edge cases around transactions or specific client configurations may differ. Test your exact workload before migrating production.
- Over-provisioning resources for development. Redpanda's single-binary design means a development instance needs far less memory and CPU than Kafka. Use
--smp 1 --memory 1Gfor local development. - Not using the built-in schema registry. Redpanda includes a schema registry at port 8081 by default. There is no need to deploy a separate Confluent Schema Registry.
Frequently Asked Questions
Redpanda implements the Kafka wire protocol, so standard Kafka clients in Java, Python, Go, and other languages work without modification. You change only the broker address. Compatibility covers producers, consumers, consumer groups, and most admin APIs.
Redpanda typically provides lower p99 latency than Kafka because there are no JVM garbage collection pauses. Throughput is comparable for most workloads. The C++ thread-per-core architecture avoids contention that can affect Kafka under high concurrency.
Redpanda is compatible with Kafka Connect since connectors communicate via the Kafka protocol. You can run the same Kafka Connect workers against Redpanda brokers. Redpanda also supports its own HTTP proxy for simpler integrations.
Redpanda is source-available under the BSL 1.1 license, which converts to Apache 2.0 after 4 years. The community edition is free to use. Redpanda also offers a fully managed cloud service.
Yes. Redpanda provides a Helm chart and a Kubernetes operator for deploying and managing Redpanda clusters. The operator handles scaling, upgrades, and configuration changes.
Citations (3)
- Redpanda GitHub— Redpanda is a Kafka-compatible streaming platform in C++
- Redpanda Documentation— Kafka wire protocol compatibility documentation
- Redpanda Features— Built-in schema registry and HTTP proxy
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.