Skip to content

Results

Side-by-side benchmarks of Turbine vs competing Python stream processors. Each workload page shows the latest result of every product side by side; numbers are relative and same-machine.

Workloads

  • Stateless Filter + Enrich — Per-record filter keeping European regions (eu-*), then enrich each kept row with a derived latency_ratio and an ok/breach SLA decision. No state — measures the raw I/O + serde + per-record compute ceiling (fed above each consumer's capacity so CPU saturates).
  • Windowed Low Cardinality — Tumbling 30s event-time window grouped by region (16 fixed keys), aggregating count + avg(latency_ms). The tiny key set keeps state trivial, so this isolates framework + windowing overhead. Benched at each product's max sustainable single-partition rate (its knee).
  • Windowed High Cardinality — Same tumbling 30s window and count + avg(latency_ms) aggregates as the low-cardinality bench, but grouped by user_id (~100k keys) — one open window per active user. Stresses the keyed-state store rather than framework overhead.

Run history

run product workload output_rate cpu_avg rss_avg_mb
2026-06-18 13:19 flink 2.2.1 stateless 175,141 212.3 1,127.3
2026-06-18 12:57 flink 2.2.1 windowed-highcard 23,115.48 167.7 3,555.5
2026-06-18 12:53 flink 2.2.1 windowed-lowcard 0.53 117.6 1,182.8
2026-06-17 22:24 turbine 0.1.0a5 windowed-highcard 13,214.36 118.2 2,252.4
2026-06-17 22:19 turbine 0.1.0a5 windowed-highcard 14,769.45 136.5 2,712.3
2026-06-17 22:15 turbine 0.1.0a5 windowed-highcard 15,840.24 148.1 3,359.7
2026-06-17 22:11 turbine 0.1.0a5 windowed-highcard 13,243.79 121.8 2,188.2
2026-06-17 22:06 turbine 0.1.0a5 windowed-lowcard 0.53 118.0 281.7
2026-06-17 22:02 turbine 0.1.0a5 stateless 131,551 103.9 1,319.8
2026-06-17 14:01 faststream 0.7.1 stateless 31,384 98.6 134.0
2026-06-17 13:58 faststream 0.7.1 stateless 35,875 98.9 125.1
2026-06-17 13:56 faststream 0.7.1 stateless 28,400 96.2 129.8
2026-06-16 21:17 faststream 0.7.1 stateless 23,551 99.0 160.6
2026-06-16 21:02 faststream 0.7.1 stateless 21,403 99.2 153.1
2026-06-16 20:49 faststream 0.7.1 stateless 2,421 90.0 212.5
2026-06-16 16:14 risingwave v2.8.4 windowed-highcard 15,021.91 311.9 6,408.2
2026-06-16 15:22 risingwave v2.8.4 windowed-lowcard 0.53 96.8 1,344.8
2026-06-16 14:23 turbine 0.1.0a4 stateless 138,226 105.9 1,141.5
2026-06-16 13:04 risingwave v2.8.4 stateless 57,918 45.6 846.9
2026-06-16 11:58 risingwave v2.8.4 stateless 62,420 47.7 670.7
2026-06-16 11:34 risingwave v2.8.4 stateless 65,679 122.8 468.3
2026-06-16 10:50 turbine 0.1.0a4 windowed-highcard 8,334.08 110.0 1,777.0
2026-06-16 10:21 quix 3.23.6 windowed-highcard 1,776.05 78.7 526.6
2026-06-16 08:37 turbine 0.1.0a4 windowed-lowcard 0.57 124.9 543.2
2026-06-16 08:31 turbine 0.1.0a4 windowed-lowcard 0.26 106.0 695.9
2026-06-16 08:27 turbine 0.1.0a4 windowed-lowcard 0.53 125.6 442.0
2026-06-16 08:24 turbine 0.1.0a4 windowed-lowcard 0.34 108.5 715.2
2026-06-16 08:20 turbine 0.1.0a4 windowed-lowcard 0.26 106.7 825.8
2026-06-16 08:17 turbine 0.1.0a4 windowed-lowcard 0.53 103.3 317.1
2026-06-16 07:48 turbine 0.1.0a4 windowed-lowcard 0.53 23.5 235.8
2026-06-16 07:42 quix 3.23.6 windowed-lowcard 0.53 93.3 119.8
2026-06-16 07:32 quix 3.23.6 windowed-lowcard 0.40 98.6 202.0
2026-06-15 22:26 quix 3.23.6 stateless 58,963 99.9 198.4
2026-06-15 22:10 turbine 0.1.0a4 stateless 149,115 106.4 1,066.9
2026-06-15 22:00 turbine 0.1.0a4 stateless 139,147 106.5 988.9
2026-06-15 21:48 turbine 0.1.0a4 stateless 141,684 107.4 1,074.9
2026-06-14 18:52 turbine 0.1.0a3 stateless 60,214 36.7 508.9
2026-06-14 18:42 quix 3.23.6 stateless 60,080 100.8 211.6
2026-06-14 00:21 turbine 0.1.0a3 stateless 171,102 97.2 1,297.8
2026-06-14 00:14 turbine 0.1.0a3 stateless 172,502 101.8 1,226.2
2026-06-14 00:10 quix 3.23.6 stateless 55,440 100.9 209.7
2026-06-13 23:47 turbine 0.1.0a3 stateless 54,956 42.2 644.2
2026-06-13 23:43 quix 3.23.6 stateless 54,844 97.9 196.1
2026-06-13 23:06 quix 3.23.6 stateless 0 95.1 189.7
2026-06-13 22:57 quix 3.23.6 stateless 0 0.7 125.8