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 |