Benchmark Results & Methodology

Empirical measurements comparing Krabka against Strimzi (Apache Kafka on OpenJDK 21) under identical Kubernetes cluster topologies.

Latest matrix: commit a53aa0aAugust 26, 2026
Read Methodology & Docs

Memory Working Set (RSS)

Resident Set Size (RSS) memory consumption measured across idle state, sustained produce workload (50k msg/s), and multi-consumer fanout.

Krabka Broker (RSS) 114.2 MiB
Strimzi Kafka JVM (Heap + Off-Heap) 4,280 MiB
Krabka operates in a fraction of the memory because it avoids JVM object header bloat, uses zero-copy byte buffers with Tokio, and avoids speculative GC buffer reservations.

Cold Start & Failover Time

Elapsed time from Kubernetes pod launch until the broker joins the KRaft quorum and acknowledges its first produce request.

Krabka Startup Time 1.2 seconds
Strimzi JVM Startup Time 8.6 seconds
Native Rust compilation and immediate KRaft log recovery allow Krabka pods to reach Ready state and serve traffic in ~1.2 seconds without JVM classloading or JIT warm-up.

Workload Scenario Matrix

Throughput saturation and latency measurements across individual benchmark scenario runs.

Scenario Payload Topology Duration Krabka Metric Strimzi Metric Advantage
small-msg-saturate 100 B 6p / RF=1 60 s 182.4 MB/s 74.8 MB/s 2.44x
fixed-rate-latency 1 KiB 6p / RF=1 120 s 1.4 ms (p99) 8.2 ms (p99) 82.9%
large-msg 100 KiB 6p / RF=1 60 s 890.2 MB/s 512.6 MB/s 1.74x
failover 1 KiB 12p / RF=3 180 s 1.8 s (failover) 12.4 s (failover) 6.89x
high-partition-saturate 100 B 100p / RF=3 60 s 245 MB/s 98.2 MB/s 2.49x

Reproducing the Benchmarks

All benchmarking scripts and Terraform recipes are open source in the krabka-o11y-demo repository.

git clone https://github.com/krabka-io/krabka-o11y-demo
cd krabka-o11y-demo/benchmarks
./run-suite.sh --cluster-type gke --target krabka --workload omb-standard