diff --git a/README.md b/README.md index 99fb821e..214a180c 100644 --- a/README.md +++ b/README.md @@ -110,8 +110,10 @@ Full semantics: [Outcomes & Delivery](https://shove.rs/concepts/outcomes). The charts are generated from a committed results document — never hand-copied — and each one carries its own provenance (shove version, generation date, hardware) in the caption. The harness runs against every backend; the currently -published document measures the in-process and Kafka backends, and a plotted -series appears only for a backend the document actually contains. See +published document measures the in-process, Kafka, RabbitMQ and Redis backends, +and a plotted series appears only for a backend the document actually contains. +NATS is absent until a publisher fix lands, and SQS is absent because it runs only +against LocalStack. See [Measurement methodology](https://shove.rs/ops/performance#measurement-methodology) for what is measured and what is still pending. diff --git a/benches/results/bench-results.json b/benches/results/bench-results.json index cb7bc260..f182af53 100644 --- a/benches/results/bench-results.json +++ b/benches/results/bench-results.json @@ -1,6 +1,6 @@ { "schema_version": 6, - "generated_at": "2026-09-04T13:16:16Z", + "generated_at": "2026-09-07T13:47:38Z", "shove_version": "0.14.0", "rust_version": "rustc 1.91.1 (ed61e7d7e 2025-11-07)", "hardware": { @@ -6076,7 +6076,7 @@ "peak_rss_mb": 4.578125, "cpu_pct": 12.83364572988269, "duration_secs": 10.000727708, - "setup_secs": 3.1816746670000002, + "setup_secs": 3.181674667, "load": { "offered_msg_per_sec": 25000, "window_secs": 10, @@ -6182,7 +6182,7 @@ "e2e_p99_ms": 12.705292, "scaling_efficiency": 1.0, "peak_rss_mb": 0.1875, - "cpu_pct": 11.398452813622649, + "cpu_pct": 11.398452813622647, "duration_secs": 10.009347208, "setup_secs": 3.181928542, "load": { @@ -6266,7 +6266,7 @@ "published": 999388, "published_at_window_end": 999388, "processed_at_window_end": 999303, - "achieved_publish_msg_per_sec": 99898.17141368607, + "achieved_publish_msg_per_sec": 99898.17141368608, "lag_at_window_end": 85, "peak_lag": 3394, "drain_secs": 0.0113625, @@ -6392,7 +6392,7 @@ "consumers": 1, "handler": "zero (no-op)", "handler_cost": "setup_bound", - "throughput_msg_per_sec": 1556.6781051259675, + "throughput_msg_per_sec": 1556.6781051259677, "dispatch_p50_ms": 3148.898334, "dispatch_p95_ms": 3201.462916, "dispatch_p99_ms": 3204.107166, @@ -6423,7 +6423,7 @@ "e2e_p99_ms": 3212.706875, "scaling_efficiency": 1.0, "peak_rss_mb": 0.09375, - "cpu_pct": 0.020486444414497578, + "cpu_pct": 0.020486444414497575, "duration_secs": 3.221589958, "setup_secs": null }, @@ -6505,7 +6505,7 @@ "e2e_p99_ms": 120.01075, "scaling_efficiency": 1.0, "peak_rss_mb": 0.046875, - "cpu_pct": 10.730559690264533, + "cpu_pct": 10.730559690264531, "duration_secs": 10.003985, "setup_secs": 3.440648667, "load": { @@ -6658,7 +6658,7 @@ "e2e_p99_ms": 128.222125, "scaling_efficiency": 1.0, "peak_rss_mb": 0.015625, - "cpu_pct": 11.211687688561247, + "cpu_pct": 11.211687688561248, "duration_secs": 10.004110541, "setup_secs": 3.425400041, "load": { @@ -6727,7 +6727,7 @@ "handler_cost": "framework", "max_batch_size": 500, "max_batch_age_ms": 250, - "throughput_msg_per_sec": 99859.44749778083, + "throughput_msg_per_sec": 99859.44749778084, "dispatch_p50_ms": 10.381666, "dispatch_p95_ms": 20.386042, "dispatch_p99_ms": 65.834292, @@ -6738,7 +6738,7 @@ "peak_rss_mb": 0.109375, "cpu_pct": 23.211558003677688, "duration_secs": 10.004060958, - "setup_secs": 3.4373713329999998, + "setup_secs": 3.437371333, "load": { "offered_msg_per_sec": 100000, "window_secs": 10, @@ -6746,7 +6746,7 @@ "published": 999628, "published_at_window_end": 999628, "processed_at_window_end": 999000, - "achieved_publish_msg_per_sec": 99922.22200531697, + "achieved_publish_msg_per_sec": 99922.22200531696, "lag_at_window_end": 628, "peak_lag": 9339, "drain_secs": 0.257024917, @@ -6850,7 +6850,7 @@ "e2e_p99_ms": 7013.979333, "scaling_efficiency": 1.0, "peak_rss_mb": 185.84375, - "cpu_pct": 232.25614920866118, + "cpu_pct": 232.2561492086612, "duration_secs": 10.229543958, "setup_secs": 3.429176583, "load": { @@ -6921,7 +6921,7 @@ "e2e_p99_ms": 12.040083, "scaling_efficiency": 1.0, "peak_rss_mb": 0.03125, - "cpu_pct": 10.972972137599653, + "cpu_pct": 10.972972137599651, "duration_secs": 10.0059645, "setup_secs": 3.642154417, "load": { @@ -6958,7 +6958,7 @@ "e2e_p99_ms": 16.539208, "scaling_efficiency": 1.0, "peak_rss_mb": 0.0, - "cpu_pct": 13.416394954940113, + "cpu_pct": 13.416394954940111, "duration_secs": 10.00617525, "setup_secs": 3.494536584, "load": { @@ -6986,7 +6986,7 @@ "consumers": 1, "handler": "zero (no-op)", "handler_cost": "framework", - "throughput_msg_per_sec": 99876.55095650641, + "throughput_msg_per_sec": 99876.5509565064, "dispatch_p50_ms": 8.208583, "dispatch_p95_ms": 13.212833, "dispatch_p99_ms": 19.838083, @@ -7005,7 +7005,7 @@ "published": 999677, "published_at_window_end": 999677, "processed_at_window_end": 999434, - "achieved_publish_msg_per_sec": 99900.83470298935, + "achieved_publish_msg_per_sec": 99900.83470298936, "lag_at_window_end": 243, "peak_lag": 4803, "drain_secs": 0.012055417, @@ -7066,7 +7066,7 @@ "e2e_p99_ms": 13.743125, "scaling_efficiency": 1.0, "peak_rss_mb": 0.0625, - "cpu_pct": 11.499996972162455, + "cpu_pct": 11.499996972162457, "duration_secs": 10.0031135, "setup_secs": 3.605212875, "load": { @@ -7140,7 +7140,7 @@ "e2e_p99_ms": 22.617917, "scaling_efficiency": 1.0, "peak_rss_mb": 0.0, - "cpu_pct": 23.285604818190926, + "cpu_pct": 23.28560481819093, "duration_secs": 10.005208542, "setup_secs": 3.598662792, "load": { @@ -7298,7 +7298,7 @@ "consumers": 1, "handler": "zero (no-op)", "handler_cost": "setup_bound", - "throughput_msg_per_sec": 48417.670346412844, + "throughput_msg_per_sec": 48417.67034641285, "dispatch_p50_ms": 16.52375, "dispatch_p95_ms": 28.577833, "dispatch_p99_ms": 29.27425, @@ -7351,7 +7351,7 @@ "e2e_p99_ms": 3231.203709, "scaling_efficiency": 1.0, "peak_rss_mb": 0.09375, - "cpu_pct": 0.019247620405372246, + "cpu_pct": 0.01924762040537225, "duration_secs": 3.236748, "setup_secs": null }, @@ -7386,7 +7386,7 @@ "consumers": 1, "handler": "zero (no-op)", "handler_cost": "setup_bound", - "throughput_msg_per_sec": 1482.1947465311735, + "throughput_msg_per_sec": 1482.1947465311737, "dispatch_p50_ms": 3293.131458, "dispatch_p95_ms": 3356.032375, "dispatch_p99_ms": 3362.120208, @@ -7668,7 +7668,7 @@ "e2e_p50_ms": 7.872, "e2e_p95_ms": 12.64675, "e2e_p99_ms": 21.090083, - "scaling_efficiency": 0.9999257141854403, + "scaling_efficiency": 0.9999257141854404, "peak_rss_mb": 0.015625, "cpu_pct": 22.103753555150092, "duration_secs": 10.003318459, @@ -7853,7 +7853,7 @@ "e2e_p99_ms": 221.730917, "scaling_efficiency": 1.0000622174932956, "peak_rss_mb": 0.046875, - "cpu_pct": 11.498403139822639, + "cpu_pct": 11.49840313982264, "duration_secs": 10.003968917, "setup_secs": 6.436844375, "load": { @@ -7883,14 +7883,14 @@ "handler_cost": "framework", "max_batch_size": 500, "max_batch_age_ms": 250, - "throughput_msg_per_sec": 24885.434659612554, + "throughput_msg_per_sec": 24885.43465961255, "dispatch_p50_ms": 26.523, "dispatch_p95_ms": 50.653375, "dispatch_p99_ms": 63.951584, "e2e_p50_ms": 26.544333, "e2e_p95_ms": 50.670583, "e2e_p99_ms": 63.959042, - "scaling_efficiency": 0.9977517383009353, + "scaling_efficiency": 0.9977517383009352, "peak_rss_mb": 0.03125, "cpu_pct": 12.402631358621084, "duration_secs": 10.005852958, @@ -7971,7 +7971,7 @@ "scaling_efficiency": 2.1416054082333917, "peak_rss_mb": 241.53125, "cpu_pct": 0.0, - "duration_secs": 15.387142666999999, + "duration_secs": 15.387142667, "setup_secs": 6.190348375, "method": "drain", "drain": { @@ -8004,7 +8004,7 @@ "e2e_p50_ms": 106.791208, "e2e_p95_ms": 202.142125, "e2e_p99_ms": 224.77725, - "scaling_efficiency": 0.9990997962389827, + "scaling_efficiency": 0.9990997962389828, "peak_rss_mb": 0.015625, "cpu_pct": 11.044426169043724, "duration_secs": 10.007055833, @@ -8043,7 +8043,7 @@ "e2e_p50_ms": 26.255417, "e2e_p95_ms": 50.128666, "e2e_p99_ms": 61.02175, - "scaling_efficiency": 0.9998360231331451, + "scaling_efficiency": 0.9998360231331452, "peak_rss_mb": 0.0, "cpu_pct": 17.495009002579582, "duration_secs": 10.007644, @@ -8075,14 +8075,14 @@ "handler_cost": "framework", "max_batch_size": 500, "max_batch_age_ms": 250, - "throughput_msg_per_sec": 99856.29290059741, + "throughput_msg_per_sec": 99856.2929005974, "dispatch_p50_ms": 12.743375, "dispatch_p95_ms": 21.939083, "dispatch_p99_ms": 35.047917, "e2e_p50_ms": 12.763708, "e2e_p95_ms": 21.956791, "e2e_p99_ms": 35.056708, - "scaling_efficiency": 0.9999684096271063, + "scaling_efficiency": 0.9999684096271064, "peak_rss_mb": 0.015625, "cpu_pct": 28.72553319689044, "duration_secs": 10.004377, @@ -8412,9 +8412,9 @@ "e2e_p50_ms": 6.540833, "e2e_p95_ms": 8.629625, "e2e_p99_ms": 12.141084, - "scaling_efficiency": 0.9996739507587715, + "scaling_efficiency": 0.9996739507587716, "peak_rss_mb": 0.015625, - "cpu_pct": 11.984601539056877, + "cpu_pct": 11.984601539056875, "duration_secs": 10.005975584, "setup_secs": 6.655422709, "load": { @@ -8479,7 +8479,7 @@ "consumers": 2, "handler": "zero (no-op)", "handler_cost": "framework", - "throughput_msg_per_sec": 99865.89096726655, + "throughput_msg_per_sec": 99865.89096726656, "dispatch_p50_ms": 7.952875, "dispatch_p95_ms": 13.800583, "dispatch_p99_ms": 30.282, @@ -8646,7 +8646,7 @@ "consumers": 2, "handler": "zero (no-op)", "handler_cost": "setup_bound", - "throughput_msg_per_sec": 103100.71056803523, + "throughput_msg_per_sec": 103100.71056803524, "dispatch_p50_ms": 13.578041, "dispatch_p95_ms": 23.669708, "dispatch_p99_ms": 25.358041, @@ -8770,7 +8770,7 @@ "e2e_p99_ms": 11.1325, "scaling_efficiency": 1.0003286693715656, "peak_rss_mb": 0.0, - "cpu_pct": 11.380680675391059, + "cpu_pct": 11.38068067539106, "duration_secs": 10.006131, "setup_secs": 6.881353625, "load": { @@ -8817,7 +8817,7 @@ "published": 999562, "published_at_window_end": 999562, "processed_at_window_end": 999502, - "achieved_publish_msg_per_sec": 99885.86121557323, + "achieved_publish_msg_per_sec": 99885.86121557324, "lag_at_window_end": 60, "peak_lag": 4174, "drain_secs": 0.011925875, @@ -8913,7 +8913,7 @@ "e2e_p50_ms": 7.398833, "e2e_p95_ms": 11.371, "e2e_p99_ms": 16.587167, - "scaling_efficiency": 1.0000106024782587, + "scaling_efficiency": 1.000010602478259, "peak_rss_mb": 0.0, "cpu_pct": 17.627230663380054, "duration_secs": 10.005518125, @@ -8950,7 +8950,7 @@ "e2e_p50_ms": 8.002792, "e2e_p95_ms": 11.267833, "e2e_p99_ms": 22.490667, - "scaling_efficiency": 0.9997971760533483, + "scaling_efficiency": 0.9997971760533484, "peak_rss_mb": 0.015625, "cpu_pct": 26.2471406454947, "duration_secs": 10.00477475, @@ -8962,7 +8962,7 @@ "published": 999534, "published_at_window_end": 999534, "processed_at_window_end": 999171, - "achieved_publish_msg_per_sec": 99905.69752707327, + "achieved_publish_msg_per_sec": 99905.69752707328, "lag_at_window_end": 363, "peak_lag": 3789, "drain_secs": 0.011453083, @@ -8987,7 +8987,7 @@ "e2e_p50_ms": 0.0, "e2e_p95_ms": 0.0, "e2e_p99_ms": 0.0, - "scaling_efficiency": 1.7492755324158857, + "scaling_efficiency": 1.7492755324158855, "peak_rss_mb": 6.0625, "cpu_pct": 0.0, "duration_secs": 0.519439042, @@ -9135,7 +9135,7 @@ "e2e_p99_ms": 258.461958, "scaling_efficiency": 0.999813249974274, "peak_rss_mb": 0.03125, - "cpu_pct": 10.963953344153337, + "cpu_pct": 10.963953344153335, "duration_secs": 10.005449292, "setup_secs": 6.477287666, "load": { @@ -9172,7 +9172,7 @@ "e2e_p50_ms": 44.940833, "e2e_p95_ms": 95.820541, "e2e_p99_ms": 130.177291, - "scaling_efficiency": 0.9960467053039601, + "scaling_efficiency": 0.99604670530396, "peak_rss_mb": 0.015625, "cpu_pct": 13.34824615084761, "duration_secs": 10.0026935, @@ -9211,9 +9211,9 @@ "e2e_p50_ms": 15.62325, "e2e_p95_ms": 37.427792, "e2e_p99_ms": 51.890959, - "scaling_efficiency": 0.9988686505000143, + "scaling_efficiency": 0.9988686505000144, "peak_rss_mb": 0.046875, - "cpu_pct": 20.375662675219758, + "cpu_pct": 20.37566267521976, "duration_secs": 10.006276083, "setup_secs": 6.431085375, "load": { @@ -9286,7 +9286,7 @@ "e2e_p50_ms": 135.900375, "e2e_p95_ms": 251.016917, "e2e_p99_ms": 258.88425, - "scaling_efficiency": 1.0015905128737461, + "scaling_efficiency": 1.001590512873746, "peak_rss_mb": 0.0, "cpu_pct": 11.771947226950944, "duration_secs": 10.004770291, @@ -9325,7 +9325,7 @@ "e2e_p50_ms": 45.015709, "e2e_p95_ms": 95.987458, "e2e_p99_ms": 119.772583, - "scaling_efficiency": 1.0000425907370853, + "scaling_efficiency": 1.0000425907370851, "peak_rss_mb": 0.0, "cpu_pct": 17.77855185888089, "duration_secs": 10.005576833, @@ -9337,7 +9337,7 @@ "published": 249940, "published_at_window_end": 249940, "processed_at_window_end": 249497, - "achieved_publish_msg_per_sec": 24980.069032667638, + "achieved_publish_msg_per_sec": 24980.06903266764, "lag_at_window_end": 443, "peak_lag": 2124, "drain_secs": 0.256232042, @@ -9364,9 +9364,9 @@ "e2e_p50_ms": 15.898791, "e2e_p95_ms": 37.901458, "e2e_p99_ms": 53.248458, - "scaling_efficiency": 0.9991497310102715, + "scaling_efficiency": 0.9991497310102716, "peak_rss_mb": 0.0, - "cpu_pct": 26.675654538146258, + "cpu_pct": 26.675654538146254, "duration_secs": 10.007563041, "setup_secs": 6.444197917, "load": { @@ -9439,7 +9439,7 @@ "e2e_p50_ms": 135.906791, "e2e_p95_ms": 251.875375, "e2e_p99_ms": 261.848084, - "scaling_efficiency": 0.9935790146200791, + "scaling_efficiency": 0.9935790146200792, "peak_rss_mb": 0.0, "cpu_pct": 34.827457848607125, "duration_secs": 10.125794958, @@ -9551,7 +9551,7 @@ "e2e_p99_ms": 11.484167, "scaling_efficiency": 1.0000863176841246, "peak_rss_mb": 0.015625, - "cpu_pct": 11.300111054439181, + "cpu_pct": 11.30011105443918, "duration_secs": 10.003299208, "setup_secs": 6.619226792, "load": { @@ -9635,7 +9635,7 @@ "published": 999799, "published_at_window_end": 999799, "processed_at_window_end": 999661, - "achieved_publish_msg_per_sec": 99912.58389659967, + "achieved_publish_msg_per_sec": 99912.58389659968, "lag_at_window_end": 138, "peak_lag": 1526, "drain_secs": 0.012495416, @@ -9694,7 +9694,7 @@ "e2e_p50_ms": 6.603417, "e2e_p95_ms": 9.514333, "e2e_p99_ms": 12.36225, - "scaling_efficiency": 0.9998775060468721, + "scaling_efficiency": 0.999877506046872, "peak_rss_mb": 0.0, "cpu_pct": 12.116923759061113, "duration_secs": 10.006341, @@ -9768,7 +9768,7 @@ "e2e_p50_ms": 7.951416, "e2e_p95_ms": 11.755958, "e2e_p99_ms": 22.714875, - "scaling_efficiency": 0.9997893369056345, + "scaling_efficiency": 0.9997893369056344, "peak_rss_mb": 0.03125, "cpu_pct": 26.57409539947991, "duration_secs": 10.007587083, @@ -9780,7 +9780,7 @@ "published": 999679, "published_at_window_end": 999679, "processed_at_window_end": 999394, - "achieved_publish_msg_per_sec": 99892.11102625985, + "achieved_publish_msg_per_sec": 99892.11102625984, "lag_at_window_end": 285, "peak_lag": 4084, "drain_secs": 0.01258725, @@ -9876,7 +9876,7 @@ "e2e_p50_ms": 257.320916, "e2e_p95_ms": 680.789041, "e2e_p99_ms": 876.818125, - "scaling_efficiency": 1.7986137541060903, + "scaling_efficiency": 1.7986137541060905, "peak_rss_mb": 8.296875, "cpu_pct": 322.3452077874202, "duration_secs": 10.290763416, @@ -9957,7 +9957,7 @@ "e2e_p50_ms": 113.471583, "e2e_p95_ms": 191.017375, "e2e_p99_ms": 222.175, - "scaling_efficiency": 3.6098868853548165, + "scaling_efficiency": 3.609886885354817, "peak_rss_mb": 0.0, "cpu_pct": 0.0, "duration_secs": 0.982899958, @@ -10080,7 +10080,7 @@ "consumers": 8, "handler": "zero (no-op)", "handler_cost": "framework", - "throughput_msg_per_sec": 99896.93940748267, + "throughput_msg_per_sec": 99896.93940748269, "dispatch_p50_ms": 7.836666, "dispatch_p95_ms": 12.767333, "dispatch_p99_ms": 17.696208, @@ -10099,7 +10099,7 @@ "published": 999603, "published_at_window_end": 999603, "processed_at_window_end": 999521, - "achieved_publish_msg_per_sec": 99905.13488214645, + "achieved_publish_msg_per_sec": 99905.13488214643, "lag_at_window_end": 82, "peak_lag": 4697, "drain_secs": 0.012308958, @@ -10158,7 +10158,7 @@ "e2e_p50_ms": 6.4345, "e2e_p95_ms": 8.303292, "e2e_p99_ms": 12.341917, - "scaling_efficiency": 1.0004457987811197, + "scaling_efficiency": 1.0004457987811195, "peak_rss_mb": 0.0, "cpu_pct": 12.006949453922916, "duration_secs": 10.00448675, @@ -10340,7 +10340,7 @@ "e2e_p50_ms": 199.167417, "e2e_p95_ms": 410.870916, "e2e_p99_ms": 520.404333, - "scaling_efficiency": 1.6395347624779915, + "scaling_efficiency": 1.6395347624779917, "peak_rss_mb": 5.28125, "cpu_pct": 318.8762779214755, "duration_secs": 10.228687417, @@ -10415,9 +10415,9 @@ "e2e_p50_ms": 137.996542, "e2e_p95_ms": 251.784667, "e2e_p99_ms": 258.294833, - "scaling_efficiency": 0.9963410929997911, + "scaling_efficiency": 0.9963410929997912, "peak_rss_mb": 0.0, - "cpu_pct": 10.629155660997327, + "cpu_pct": 10.629155660997329, "duration_secs": 10.005629125, "setup_secs": 6.441749291, "load": { @@ -10454,7 +10454,7 @@ "e2e_p50_ms": 81.39475, "e2e_p95_ms": 186.898583, "e2e_p99_ms": 229.524208, - "scaling_efficiency": 0.9973427959273523, + "scaling_efficiency": 0.9973427959273524, "peak_rss_mb": 0.0, "cpu_pct": 14.260366153985604, "duration_secs": 10.006096417, @@ -10568,7 +10568,7 @@ "e2e_p50_ms": 139.161292, "e2e_p95_ms": 251.969333, "e2e_p99_ms": 259.060542, - "scaling_efficiency": 0.9944352888354847, + "scaling_efficiency": 0.9944352888354848, "peak_rss_mb": 0.046875, "cpu_pct": 12.495119191029016, "duration_secs": 10.005015584, @@ -10639,14 +10639,14 @@ "handler_cost": "framework", "max_batch_size": 500, "max_batch_age_ms": 250, - "throughput_msg_per_sec": 99685.13488273181, + "throughput_msg_per_sec": 99685.1348827318, "dispatch_p50_ms": 22.031041, "dispatch_p95_ms": 70.230375, "dispatch_p99_ms": 103.627084, "e2e_p50_ms": 22.052542, "e2e_p95_ms": 70.245125, "e2e_p99_ms": 103.635334, - "scaling_efficiency": 0.9982544203936949, + "scaling_efficiency": 0.9982544203936948, "peak_rss_mb": 0.046875, "cpu_pct": 24.74107789908842, "duration_secs": 10.006507, @@ -10658,7 +10658,7 @@ "published": 999756, "published_at_window_end": 999756, "processed_at_window_end": 997500, - "achieved_publish_msg_per_sec": 99910.58818027111, + "achieved_publish_msg_per_sec": 99910.58818027112, "lag_at_window_end": 2256, "peak_lag": 5804, "drain_secs": 0.260969583, @@ -10721,7 +10721,7 @@ "e2e_p50_ms": 139.604583, "e2e_p95_ms": 254.423291, "e2e_p99_ms": 260.83225, - "scaling_efficiency": 0.9977371345380261, + "scaling_efficiency": 0.997737134538026, "peak_rss_mb": 0.0, "cpu_pct": 36.26740526643382, "duration_secs": 10.006198958, @@ -10835,7 +10835,7 @@ "peak_rss_mb": 0.015625, "cpu_pct": 11.946231041079216, "duration_secs": 10.004375375, - "setup_secs": 6.6308504169999996, + "setup_secs": 6.630850417, "load": { "offered_msg_per_sec": 5000, "window_secs": 10, @@ -10917,7 +10917,7 @@ "published": 999619, "published_at_window_end": 999619, "processed_at_window_end": 999444, - "achieved_publish_msg_per_sec": 99899.09510722097, + "achieved_publish_msg_per_sec": 99899.09510722096, "lag_at_window_end": 175, "peak_lag": 1694, "drain_secs": 0.011724583, @@ -10978,7 +10978,7 @@ "e2e_p99_ms": 12.090458, "scaling_efficiency": 0.9975009910060204, "peak_rss_mb": 0.0, - "cpu_pct": 12.387038921910323, + "cpu_pct": 12.387038921910325, "duration_secs": 10.031384875, "setup_secs": 6.644562292, "load": { @@ -11087,7 +11087,7 @@ "e2e_p50_ms": 0.0, "e2e_p95_ms": 0.0, "e2e_p99_ms": 0.0, - "scaling_efficiency": 1.9063162508476825, + "scaling_efficiency": 1.9063162508476823, "peak_rss_mb": 0.0, "cpu_pct": 0.0, "duration_secs": 0.542282916, @@ -11248,6 +11248,10099 @@ ], "failures": [], "unsupported": [] + }, + { + "backend": "rabbitmq", + "broker": { + "name": "RabbitMQ", + "version": "3.8.22", + "deployment": "docker single-node" + }, + "representative": true, + "results": [ + { + "flow": "publish_single", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 1173.197264350351, + "dispatch_p50_ms": 0.780041, + "dispatch_p95_ms": 1.239333, + "dispatch_p99_ms": 2.100959, + "e2e_p50_ms": 0.780041, + "e2e_p95_ms": 1.239333, + "e2e_p99_ms": 2.100959, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.234375, + "cpu_pct": 0.0, + "duration_secs": 4.2618578750000005, + "setup_secs": 0.0 + }, + { + "flow": "publish_single", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 984.2605098701412, + "dispatch_p50_ms": 0.892834, + "dispatch_p95_ms": 1.641875, + "dispatch_p99_ms": 2.754083, + "e2e_p50_ms": 0.892834, + "e2e_p95_ms": 1.641875, + "e2e_p99_ms": 2.754083, + "scaling_efficiency": 1.0, + "peak_rss_mb": 1.015625, + "cpu_pct": 0.0, + "duration_secs": 5.079955916, + "setup_secs": 0.0 + }, + { + "flow": "publish_single", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 357.4392955929504, + "dispatch_p50_ms": 2.224667, + "dispatch_p95_ms": 5.683916, + "dispatch_p99_ms": 7.369459, + "e2e_p50_ms": 2.224667, + "e2e_p95_ms": 5.683916, + "e2e_p99_ms": 7.369459, + "scaling_efficiency": 1.0, + "peak_rss_mb": 126.609375, + "cpu_pct": 0.025578270812118664, + "duration_secs": 13.98838925, + "setup_secs": 0.0 + }, + { + "flow": "publish_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 39621.77057806182, + "dispatch_p50_ms": 22.718167, + "dispatch_p95_ms": 35.950084, + "dispatch_p99_ms": 35.950084, + "e2e_p50_ms": 22.718167, + "e2e_p95_ms": 35.950084, + "e2e_p99_ms": 35.950084, + "scaling_efficiency": 1.0, + "peak_rss_mb": 1.40625, + "cpu_pct": 0.0, + "duration_secs": 0.12619325, + "setup_secs": 0.0 + }, + { + "flow": "publish_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 38518.35303226105, + "dispatch_p50_ms": 23.431209, + "dispatch_p95_ms": 37.549208, + "dispatch_p99_ms": 37.549208, + "e2e_p50_ms": 23.431209, + "e2e_p95_ms": 37.549208, + "e2e_p99_ms": 37.549208, + "scaling_efficiency": 1.0, + "peak_rss_mb": 2.640625, + "cpu_pct": 0.0, + "duration_secs": 0.12980825, + "setup_secs": 0.0 + }, + { + "flow": "publish_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 6638.090792154905, + "dispatch_p50_ms": 104.381208, + "dispatch_p95_ms": 291.461708, + "dispatch_p99_ms": 291.461708, + "e2e_p50_ms": 104.381208, + "e2e_p95_ms": 291.461708, + "e2e_p99_ms": 291.461708, + "scaling_efficiency": 1.0, + "peak_rss_mb": 121.53125, + "cpu_pct": 0.0, + "duration_secs": 0.753228625, + "setup_secs": 0.0 + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 20661.730814319257, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.625, + "cpu_pct": 0.0, + "duration_secs": 261.3514835, + "setup_secs": 0.004671916, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 176.027740583, + "producers": 8, + "unique_at_start": 26, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.533320618362, + "dispatch_p50_ms": 1.223, + "dispatch_p95_ms": 9.512916, + "dispatch_p99_ms": 19.541708, + "e2e_p50_ms": 1.223042, + "e2e_p95_ms": 9.513, + "e2e_p99_ms": 19.541791, + "scaling_efficiency": 1.0, + "peak_rss_mb": 1.109375, + "cpu_pct": 0.005349276889022424, + "duration_secs": 10.00133375, + "setup_secs": 0.008048792, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.533320618362, + "lag_at_window_end": 0, + "peak_lag": 441, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249936, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24989.59406311539, + "dispatch_p50_ms": 2.697542, + "dispatch_p95_ms": 6.5235, + "dispatch_p99_ms": 14.256542, + "e2e_p50_ms": 2.697584, + "e2e_p95_ms": 6.5235, + "e2e_p99_ms": 14.256625, + "scaling_efficiency": 1.0, + "peak_rss_mb": 4.3125, + "cpu_pct": 0.006258990607546596, + "duration_secs": 10.001603042, + "setup_secs": 0.010195, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249936, + "published_at_window_end": 249936, + "processed_at_window_end": 249936, + "achieved_publish_msg_per_sec": 24989.59406311539, + "lag_at_window_end": 0, + "peak_lag": 516, + "drain_secs": 8.3e-8, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249531, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24723.50813081532, + "dispatch_p50_ms": 201.090084, + "dispatch_p95_ms": 312.12275, + "dispatch_p99_ms": 334.064458, + "e2e_p50_ms": 201.090125, + "e2e_p95_ms": 312.122833, + "e2e_p99_ms": 334.0645, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.4375, + "cpu_pct": 0.004825186601928069, + "duration_secs": 10.092863791, + "setup_secs": 0.009053166, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 249531, + "published_at_window_end": 249531, + "processed_at_window_end": 249531, + "achieved_publish_msg_per_sec": 24723.50813081532, + "lag_at_window_end": 0, + "peak_lag": 7982, + "drain_secs": 1.25e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 16862.20045585328, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.21875, + "cpu_pct": 0.0, + "duration_secs": 167.899142666, + "setup_secs": 0.089204333, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 108.649931167, + "producers": 8, + "unique_at_start": 7, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49824, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4976.074890307416, + "dispatch_p50_ms": 1.279833, + "dispatch_p95_ms": 14.755708, + "dispatch_p99_ms": 47.354375, + "e2e_p50_ms": 1.279875, + "e2e_p95_ms": 14.755792, + "e2e_p99_ms": 47.354458, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.005622843197942247, + "duration_secs": 10.012711042, + "setup_secs": 0.007856208, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49824, + "published_at_window_end": 49824, + "processed_at_window_end": 49824, + "achieved_publish_msg_per_sec": 4976.074890307416, + "lag_at_window_end": 0, + "peak_lag": 895, + "drain_secs": 1.66e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 100921, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 2896.154919816261, + "dispatch_p50_ms": 9228.058416, + "dispatch_p95_ms": 10497.759167, + "dispatch_p99_ms": 10634.490166, + "e2e_p50_ms": 9228.0585, + "e2e_p95_ms": 10497.759208, + "e2e_p99_ms": 10634.490208, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.890625, + "cpu_pct": 0.0022436675638473043, + "duration_secs": 10.531895166, + "setup_secs": 0.006813417, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 100921, + "published_at_window_end": 100921, + "processed_at_window_end": 30502, + "achieved_publish_msg_per_sec": 9582.415928882594, + "lag_at_window_end": 70419, + "peak_lag": 71600, + "drain_secs": 9.881084667, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 1394.700522465382, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.734375, + "cpu_pct": 0.0, + "duration_secs": 31.714335291, + "setup_secs": 0.020854333, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 17.4370135, + "producers": 8, + "unique_at_start": 5, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 29628, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 2009.1145398806536, + "dispatch_p50_ms": 4739.223042, + "dispatch_p95_ms": 6920.028833, + "dispatch_p99_ms": 7118.207875, + "e2e_p50_ms": 4739.223083, + "e2e_p95_ms": 6920.028875, + "e2e_p99_ms": 7118.207917, + "scaling_efficiency": 1.0, + "peak_rss_mb": 120.390625, + "cpu_pct": 0.0023394715707699514, + "duration_secs": 14.746794875, + "setup_secs": 0.014761375, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 29628, + "published_at_window_end": 29628, + "processed_at_window_end": 29628, + "achieved_publish_msg_per_sec": 2009.1145398806536, + "lag_at_window_end": 0, + "peak_lag": 16372, + "drain_secs": 5.42e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_fifo", + "mode": "fifo", + "payload_bytes": 64, + "tier": "moderate", + "messages": 40000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 2354.4979324160354, + "dispatch_p50_ms": 164.269666, + "dispatch_p95_ms": 910.027291, + "dispatch_p99_ms": 1252.5125, + "e2e_p50_ms": 164.269875, + "e2e_p95_ms": 910.027375, + "e2e_p99_ms": 1252.512667, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.171875, + "cpu_pct": 0.002030751991269096, + "duration_secs": 16.988759875, + "setup_secs": null + }, + { + "flow": "consume_fifo", + "mode": "fifo", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 40000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 9985.522031548546, + "dispatch_p50_ms": 40.817792, + "dispatch_p95_ms": 111.39925, + "dispatch_p99_ms": 143.046459, + "e2e_p50_ms": 40.817834, + "e2e_p95_ms": 111.399417, + "e2e_p99_ms": 143.046625, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.203125, + "cpu_pct": 0.0, + "duration_secs": 4.005799584, + "setup_secs": null + }, + { + "flow": "consume_fifo", + "mode": "fifo", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 40000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 3167.1744119289942, + "dispatch_p50_ms": 135.051, + "dispatch_p95_ms": 483.904542, + "dispatch_p99_ms": 982.096792, + "e2e_p50_ms": 135.051084, + "e2e_p95_ms": 483.904834, + "e2e_p99_ms": 982.097084, + "scaling_efficiency": 1.0, + "peak_rss_mb": 43.875, + "cpu_pct": 0.005067465283167653, + "duration_secs": 12.629553917, + "setup_secs": null + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 26179.33492209752, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0, + "duration_secs": 206.250464959, + "setup_secs": 0.012106, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 350.184533333, + "producers": 8, + "unique_at_start": 500, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49976, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4946.60083984894, + "dispatch_p50_ms": 51.278167, + "dispatch_p95_ms": 110.381084, + "dispatch_p99_ms": 181.133167, + "e2e_p50_ms": 51.296, + "e2e_p95_ms": 110.391834, + "e2e_p99_ms": 181.137042, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.00375563414294556, + "duration_secs": 10.006871709, + "setup_secs": 0.258507167, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49976, + "published_at_window_end": 49976, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4994.168152975568, + "lag_at_window_end": 476, + "peak_lag": 1016, + "drain_secs": 0.164484166, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 182709, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 17863.71667324275, + "dispatch_p50_ms": 303.708584, + "dispatch_p95_ms": 934.026792, + "dispatch_p99_ms": 1108.14575, + "e2e_p50_ms": 303.723209, + "e2e_p95_ms": 934.049792, + "e2e_p99_ms": 1108.161667, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.671875, + "cpu_pct": 0.0030171115360129014, + "duration_secs": 10.160259666, + "setup_secs": 0.255251875, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 182709, + "published_at_window_end": 182709, + "processed_at_window_end": 181500, + "achieved_publish_msg_per_sec": 17982.709695049638, + "lag_at_window_end": 1209, + "peak_lag": 13209, + "drain_secs": 0.280143084, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 18411.851607149973, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.1875, + "cpu_pct": 0.0, + "duration_secs": 153.740974042, + "setup_secs": 0.21227275, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 173.48779725, + "producers": 8, + "unique_at_start": 500, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4949.043081734166, + "dispatch_p50_ms": 53.241209, + "dispatch_p95_ms": 100.780125, + "dispatch_p99_ms": 159.03775, + "e2e_p50_ms": 53.253917, + "e2e_p95_ms": 100.78325, + "e2e_p99_ms": 159.063417, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.004739435655830812, + "duration_secs": 10.001933542, + "setup_secs": 0.265002083, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4998.233570546554, + "lag_at_window_end": 492, + "peak_lag": 785, + "drain_secs": 0.167995166, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 206122, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 20571.36705773417, + "dispatch_p50_ms": 239.654959, + "dispatch_p95_ms": 425.697416, + "dispatch_p99_ms": 493.550583, + "e2e_p50_ms": 239.670125, + "e2e_p95_ms": 425.714791, + "e2e_p99_ms": 493.561625, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.003517019329022442, + "duration_secs": 10.013918833, + "setup_secs": 0.256061041, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 206122, + "published_at_window_end": 206122, + "processed_at_window_end": 206000, + "achieved_publish_msg_per_sec": 20583.550100360593, + "lag_at_window_end": 122, + "peak_lag": 10622, + "drain_secs": 0.250396333, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4255.7571867313, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 2.125, + "cpu_pct": 0.0, + "duration_secs": 10.277137083, + "setup_secs": 0.03020925, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 10.209107, + "producers": 8, + "unique_at_start": 500, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49856, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4928.251604968616, + "dispatch_p50_ms": 80.862167, + "dispatch_p95_ms": 179.184, + "dispatch_p99_ms": 252.35425, + "e2e_p50_ms": 80.868417, + "e2e_p95_ms": 179.189291, + "e2e_p99_ms": 252.372167, + "scaling_efficiency": 1.0, + "peak_rss_mb": 13.46875, + "cpu_pct": 0.004241445422994244, + "duration_secs": 10.044130042, + "setup_secs": 0.256258833, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49856, + "published_at_window_end": 49856, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4963.695192268997, + "lag_at_window_end": 356, + "peak_lag": 1318, + "drain_secs": 0.164627083, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 63461, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 5791.148236814254, + "dispatch_p50_ms": 935.746667, + "dispatch_p95_ms": 1516.780208, + "dispatch_p99_ms": 1649.492916, + "e2e_p50_ms": 935.751875, + "e2e_p95_ms": 1516.804291, + "e2e_p99_ms": 1649.526, + "scaling_efficiency": 1.0, + "peak_rss_mb": 86.734375, + "cpu_pct": 0.004883521971129398, + "duration_secs": 10.878671625, + "setup_secs": 0.256648333, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 63461, + "published_at_window_end": 63461, + "processed_at_window_end": 63000, + "achieved_publish_msg_per_sec": 5833.5247342296725, + "lag_at_window_end": 461, + "peak_lag": 8961, + "drain_secs": 0.178900125, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 18981.22075943463, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.25, + "cpu_pct": 0.0, + "duration_secs": 284.490290084, + "setup_secs": 0.006456125, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 183.590919417, + "producers": 8, + "unique_at_start": 27, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49990, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4997.97868354773, + "dispatch_p50_ms": 1.24875, + "dispatch_p95_ms": 9.125, + "dispatch_p99_ms": 19.042958, + "e2e_p50_ms": 1.248875, + "e2e_p95_ms": 9.125125, + "e2e_p99_ms": 19.043, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.007058543293492914, + "duration_secs": 10.002043459, + "setup_secs": 0.008670875, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49990, + "published_at_window_end": 49990, + "processed_at_window_end": 49990, + "achieved_publish_msg_per_sec": 4997.97868354773, + "lag_at_window_end": 0, + "peak_lag": 395, + "drain_secs": 3.33e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 232975, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 22396.98776433519, + "dispatch_p50_ms": 4.696167, + "dispatch_p95_ms": 358.146459, + "dispatch_p99_ms": 403.61, + "e2e_p50_ms": 4.69625, + "e2e_p95_ms": 358.1465, + "e2e_p99_ms": 403.610167, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.28125, + "cpu_pct": 0.005450832232668392, + "duration_secs": 10.402068459, + "setup_secs": 0.010330542, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 232975, + "published_at_window_end": 232975, + "processed_at_window_end": 232975, + "achieved_publish_msg_per_sec": 22396.98776433519, + "lag_at_window_end": 0, + "peak_lag": 7954, + "drain_secs": 3.33e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 20038.436791555443, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 141.285921125, + "setup_secs": 0.0842755, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 106.242308625, + "producers": 8, + "unique_at_start": 7, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4997.35682887869, + "dispatch_p50_ms": 0.807667, + "dispatch_p95_ms": 1.7685, + "dispatch_p99_ms": 3.467542, + "e2e_p50_ms": 0.807709, + "e2e_p95_ms": 1.768541, + "e2e_p99_ms": 3.467625, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.007607179447017023, + "duration_secs": 10.003688292, + "setup_secs": 0.010080208, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4997.35682887869, + "lag_at_window_end": 0, + "peak_lag": 28, + "drain_secs": 2.92e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 207485, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 19917.058413132116, + "dispatch_p50_ms": 45.569, + "dispatch_p95_ms": 759.705042, + "dispatch_p99_ms": 847.017458, + "e2e_p50_ms": 45.569041, + "e2e_p95_ms": 759.705125, + "e2e_p99_ms": 847.017542, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.125, + "cpu_pct": 0.006412309458301388, + "duration_secs": 10.417452, + "setup_secs": 0.0086215, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 207485, + "published_at_window_end": 207485, + "processed_at_window_end": 207485, + "achieved_publish_msg_per_sec": 19917.058413132116, + "lag_at_window_end": 0, + "peak_lag": 14705, + "drain_secs": 2.5e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 10272.974979120354, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.6875, + "cpu_pct": 0.01032793718626076, + "duration_secs": 4.305179375, + "setup_secs": 0.009348542, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 6.735005917, + "producers": 8, + "unique_at_start": 10, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49981, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4995.644370527525, + "dispatch_p50_ms": 3.087917, + "dispatch_p95_ms": 5.587417, + "dispatch_p99_ms": 8.630667, + "e2e_p50_ms": 3.088, + "e2e_p95_ms": 5.587458, + "e2e_p99_ms": 8.630709, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.004987539999543071, + "duration_secs": 10.004915541, + "setup_secs": 0.008744709, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49981, + "published_at_window_end": 49981, + "processed_at_window_end": 49981, + "achieved_publish_msg_per_sec": 4995.644370527525, + "lag_at_window_end": 0, + "peak_lag": 79, + "drain_secs": 4.59e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 88173, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4916.743983285511, + "dispatch_p50_ms": 3536.762375, + "dispatch_p95_ms": 5150.271666, + "dispatch_p99_ms": 5440.877208, + "e2e_p50_ms": 3536.7625, + "e2e_p95_ms": 5150.271708, + "e2e_p99_ms": 5440.877291, + "scaling_efficiency": 1.0, + "peak_rss_mb": 501.953125, + "cpu_pct": 0.005725306157318091, + "duration_secs": 10.694882666, + "setup_secs": 0.011854708, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 88173, + "published_at_window_end": 88173, + "processed_at_window_end": 52584, + "achieved_publish_msg_per_sec": 8244.410224369263, + "lag_at_window_end": 35589, + "peak_lag": 41452, + "drain_secs": 3.0510795, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 20897.38966651582, + "dispatch_p50_ms": 85.126209, + "dispatch_p95_ms": 110.535583, + "dispatch_p99_ms": 116.913292, + "e2e_p50_ms": 85.126209, + "e2e_p95_ms": 110.535666, + "e2e_p99_ms": 116.913333, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.239264333, + "setup_secs": 0.210810625 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 18524.390338602738, + "dispatch_p50_ms": 102.048167, + "dispatch_p95_ms": 130.659208, + "dispatch_p99_ms": 138.194083, + "e2e_p50_ms": 102.048167, + "e2e_p95_ms": 130.65925, + "e2e_p99_ms": 138.194125, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.269914416, + "setup_secs": 0.211250667 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 10153.12092235434, + "dispatch_p50_ms": 150.416291, + "dispatch_p95_ms": 189.276083, + "dispatch_p99_ms": 194.838292, + "e2e_p50_ms": 150.416416, + "e2e_p95_ms": 189.276167, + "e2e_p99_ms": 194.838375, + "scaling_efficiency": 1.0, + "peak_rss_mb": 12.234375, + "cpu_pct": 0.0, + "duration_secs": 0.492459416, + "setup_secs": 0.209956584 + }, + { + "flow": "dlq_drain", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 19656.744106048136, + "dispatch_p50_ms": 128.454625, + "dispatch_p95_ms": 233.276084, + "dispatch_p99_ms": 242.382667, + "e2e_p50_ms": 128.454667, + "e2e_p95_ms": 233.276125, + "e2e_p99_ms": 242.382709, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.12264908292158797, + "duration_secs": 0.254365625, + "setup_secs": null + }, + { + "flow": "dlq_drain", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 18196.78361368281, + "dispatch_p50_ms": 146.693083, + "dispatch_p95_ms": 261.834125, + "dispatch_p99_ms": 271.274583, + "e2e_p50_ms": 146.693125, + "e2e_p95_ms": 261.834167, + "e2e_p99_ms": 271.274625, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.274773834, + "setup_secs": null + }, + { + "flow": "dlq_drain", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 15103.86552233458, + "dispatch_p50_ms": 178.229875, + "dispatch_p95_ms": 310.772208, + "dispatch_p99_ms": 320.99675, + "e2e_p50_ms": 178.229917, + "e2e_p95_ms": 310.77225, + "e2e_p99_ms": 320.99675, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.1030031380611479, + "duration_secs": 0.331041083, + "setup_secs": null + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 22434.48579691158, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0857989583991554, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0, + "duration_secs": 240.697649542, + "setup_secs": 0.004726167, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 176.775789084, + "producers": 8, + "unique_at_start": 72, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.764274214139, + "dispatch_p50_ms": 0.834792, + "dispatch_p95_ms": 1.527542, + "dispatch_p99_ms": 2.440709, + "e2e_p50_ms": 0.834875, + "e2e_p95_ms": 1.527583, + "e2e_p99_ms": 2.44075, + "scaling_efficiency": 1.000046204272526, + "peak_rss_mb": 0.078125, + "cpu_pct": 0.00470958047428705, + "duration_secs": 10.000871667, + "setup_secs": 0.213718833, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.764274214139, + "lag_at_window_end": 0, + "peak_lag": 24, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 190698, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 18706.100866806224, + "dispatch_p50_ms": 234.725625, + "dispatch_p95_ms": 459.624791, + "dispatch_p99_ms": 532.625125, + "e2e_p50_ms": 234.725834, + "e2e_p95_ms": 459.624958, + "e2e_p99_ms": 532.625208, + "scaling_efficiency": 0.7485556115701938, + "peak_rss_mb": 0.171875, + "cpu_pct": 0.007170573838275548, + "duration_secs": 10.194428083, + "setup_secs": 0.220373833, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 190698, + "published_at_window_end": 190698, + "processed_at_window_end": 190698, + "achieved_publish_msg_per_sec": 18706.100866806224, + "lag_at_window_end": 0, + "peak_lag": 7789, + "drain_secs": 4.17e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 23151.78323713006, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.3729989331904493, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 122.282114125, + "setup_secs": 0.130154542, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 102.489367, + "producers": 8, + "unique_at_start": 107, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49986, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.363223035598, + "dispatch_p50_ms": 0.799625, + "dispatch_p95_ms": 2.578458, + "dispatch_p99_ms": 4.895042, + "e2e_p50_ms": 0.799708, + "e2e_p95_ms": 2.5785, + "e2e_p99_ms": 4.89525, + "scaling_efficiency": 1.0044790991332535, + "peak_rss_mb": 0.0, + "cpu_pct": 0.006919661512575392, + "duration_secs": 10.000473709, + "setup_secs": 0.21847575, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49986, + "published_at_window_end": 49986, + "processed_at_window_end": 49986, + "achieved_publish_msg_per_sec": 4998.363223035598, + "lag_at_window_end": 0, + "peak_lag": 35, + "drain_secs": 2.91e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249936, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24990.010497367184, + "dispatch_p50_ms": 2.506084, + "dispatch_p95_ms": 10.07, + "dispatch_p99_ms": 22.53925, + "e2e_p50_ms": 2.506167, + "e2e_p95_ms": 10.070042, + "e2e_p99_ms": 22.539334, + "scaling_efficiency": 8.628685684725943, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.006709023891683694, + "duration_secs": 10.001436375, + "setup_secs": 0.226138375, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249936, + "published_at_window_end": 249936, + "processed_at_window_end": 249936, + "achieved_publish_msg_per_sec": 24990.010497367184, + "lag_at_window_end": 0, + "peak_lag": 645, + "drain_secs": 2.5e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 234756, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 23094.80487110175, + "dispatch_p50_ms": 220.287791, + "dispatch_p95_ms": 330.259083, + "dispatch_p99_ms": 356.015334, + "e2e_p50_ms": 220.287875, + "e2e_p95_ms": 330.259167, + "e2e_p99_ms": 356.015375, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.004918888793579633, + "duration_secs": 10.164883458, + "setup_secs": 0.215308875, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 234756, + "published_at_window_end": 234756, + "processed_at_window_end": 234756, + "achieved_publish_msg_per_sec": 23094.80487110175, + "lag_at_window_end": 0, + "peak_lag": 7968, + "drain_secs": 3.34e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 9430.150214278738, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 6.761415846901143, + "peak_rss_mb": 0.15625, + "cpu_pct": 0.010050568888843146, + "duration_secs": 4.687942291, + "setup_secs": 0.0069205, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 9.595504792, + "producers": 8, + "unique_at_start": 29, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4997.283895933338, + "dispatch_p50_ms": 2.098708, + "dispatch_p95_ms": 5.855084, + "dispatch_p99_ms": 67.451375, + "e2e_p50_ms": 2.09875, + "e2e_p95_ms": 5.855167, + "e2e_p99_ms": 67.451458, + "scaling_efficiency": 2.4873066202737197, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.006677418510191606, + "duration_secs": 10.003834291, + "setup_secs": 0.220016292, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4997.283895933338, + "lag_at_window_end": 0, + "peak_lag": 860, + "drain_secs": 4.59e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 106663, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 7176.5351525648575, + "dispatch_p50_ms": 1560.9575, + "dispatch_p95_ms": 6404.154458, + "dispatch_p99_ms": 6756.86125, + "e2e_p50_ms": 1560.9575, + "e2e_p95_ms": 6404.154458, + "e2e_p99_ms": 6756.861291, + "scaling_efficiency": 1.0, + "peak_rss_mb": 219.90625, + "cpu_pct": 0.004144586281174606, + "duration_secs": 14.862743334, + "setup_secs": 0.217549667, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 106663, + "published_at_window_end": 106663, + "processed_at_window_end": 106663, + "achieved_publish_msg_per_sec": 7176.5351525648575, + "lag_at_window_end": 0, + "peak_lag": 43060, + "drain_secs": 2.5e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 35486.317048551085, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.3555087306132327, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.0, + "duration_secs": 152.143148375, + "setup_secs": 0.010678875, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 173.407491958, + "producers": 8, + "unique_at_start": 1000, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49988, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4948.731456554903, + "dispatch_p50_ms": 98.786292, + "dispatch_p95_ms": 190.489708, + "dispatch_p99_ms": 198.550042, + "e2e_p50_ms": 98.805084, + "e2e_p95_ms": 190.493541, + "e2e_p99_ms": 198.554625, + "scaling_efficiency": 1.0004307233946994, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.00774928571920657, + "duration_secs": 10.001755083, + "setup_secs": 0.465039667, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49988, + "published_at_window_end": 49988, + "processed_at_window_end": 49496, + "achieved_publish_msg_per_sec": 4997.922823061793, + "lag_at_window_end": 492, + "peak_lag": 985, + "drain_secs": 0.257188917, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249904, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24948.409441942706, + "dispatch_p50_ms": 20.980208, + "dispatch_p95_ms": 38.456667, + "dispatch_p99_ms": 41.948542, + "e2e_p50_ms": 20.994958, + "e2e_p95_ms": 38.459709, + "e2e_p99_ms": 41.959917, + "scaling_efficiency": 1.3965967944012343, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.006745918043986529, + "duration_secs": 10.000477208, + "setup_secs": 0.466209292, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249904, + "published_at_window_end": 249904, + "processed_at_window_end": 249496, + "achieved_publish_msg_per_sec": 24989.207495026974, + "lag_at_window_end": 408, + "peak_lag": 1084, + "drain_secs": 0.257533792, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 362684, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 35482.679147049625, + "dispatch_p50_ms": 151.963375, + "dispatch_p95_ms": 232.063333, + "dispatch_p99_ms": 253.430709, + "e2e_p50_ms": 151.997917, + "e2e_p95_ms": 232.066458, + "e2e_p99_ms": 253.458875, + "scaling_efficiency": 1.0, + "peak_rss_mb": 2.34375, + "cpu_pct": 0.006721329740755727, + "duration_secs": 10.2161395, + "setup_secs": 0.469557208, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 362684, + "published_at_window_end": 362684, + "processed_at_window_end": 362496, + "achieved_publish_msg_per_sec": 35501.08140163904, + "lag_at_window_end": 188, + "peak_lag": 8688, + "drain_secs": 0.257515333, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 41044.09922931657, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.2292217048598033, + "peak_rss_mb": 0.125, + "cpu_pct": 0.0, + "duration_secs": 68.954028792, + "setup_secs": 0.151247417, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 101.812614917, + "producers": 8, + "unique_at_start": 1000, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4949.436585937074, + "dispatch_p50_ms": 100.855791, + "dispatch_p95_ms": 190.78175, + "dispatch_p99_ms": 198.683084, + "e2e_p50_ms": 100.892458, + "e2e_p95_ms": 190.787916, + "e2e_p99_ms": 198.685125, + "scaling_efficiency": 1.0000795111694138, + "peak_rss_mb": 0.0, + "cpu_pct": 0.006618130407365366, + "duration_secs": 10.000330167, + "setup_secs": 0.466656291, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49496, + "achieved_publish_msg_per_sec": 4999.034948362821, + "lag_at_window_end": 496, + "peak_lag": 1000, + "drain_secs": 0.259326083, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249960, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24940.416938483253, + "dispatch_p50_ms": 22.177958, + "dispatch_p95_ms": 39.8, + "dispatch_p99_ms": 44.059458, + "e2e_p50_ms": 22.200583, + "e2e_p95_ms": 39.803875, + "e2e_p99_ms": 44.062208, + "scaling_efficiency": 1.2123850042871342, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.007032885825316303, + "duration_secs": 10.003682, + "setup_secs": 0.467618958, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249960, + "published_at_window_end": 249960, + "processed_at_window_end": 249496, + "achieved_publish_msg_per_sec": 24986.79986029144, + "lag_at_window_end": 464, + "peak_lag": 1014, + "drain_secs": 0.2480855, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 315092, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 30887.136366710496, + "dispatch_p50_ms": 164.460041, + "dispatch_p95_ms": 261.014125, + "dispatch_p99_ms": 286.068, + "e2e_p50_ms": 164.474708, + "e2e_p95_ms": 261.020125, + "e2e_p99_ms": 286.0765, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.004862173659936619, + "duration_secs": 10.182102875, + "setup_secs": 0.461637375, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 315092, + "published_at_window_end": 315092, + "processed_at_window_end": 314496, + "achieved_publish_msg_per_sec": 30945.670444328523, + "lag_at_window_end": 596, + "peak_lag": 8596, + "drain_secs": 0.245272583, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 12028.346609700537, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.8263705098596317, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.014276713101107414, + "duration_secs": 3.594592125, + "setup_secs": 0.033049666, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 7.430157208, + "producers": 8, + "unique_at_start": 1000, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49954, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4930.169223376546, + "dispatch_p50_ms": 101.917125, + "dispatch_p95_ms": 195.343584, + "dispatch_p99_ms": 261.117791, + "e2e_p50_ms": 101.9385, + "e2e_p95_ms": 195.346834, + "e2e_p99_ms": 261.144333, + "scaling_efficiency": 1.00038910724566, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.007035010892026635, + "duration_secs": 10.003104917, + "setup_secs": 0.463603167, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49954, + "published_at_window_end": 49954, + "processed_at_window_end": 49317, + "achieved_publish_msg_per_sec": 4993.8494511943545, + "lag_at_window_end": 637, + "peak_lag": 1016, + "drain_secs": 0.188728625, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 130260, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 12313.236689573594, + "dispatch_p50_ms": 450.253542, + "dispatch_p95_ms": 1214.654542, + "dispatch_p99_ms": 1330.33825, + "e2e_p50_ms": 450.264708, + "e2e_p95_ms": 1214.667417, + "e2e_p99_ms": 1330.339916, + "scaling_efficiency": 2.1262168029646538, + "peak_rss_mb": 253.59375, + "cpu_pct": 0.006470731140806125, + "duration_secs": 10.557419083, + "setup_secs": 0.464749542, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 130260, + "published_at_window_end": 130260, + "processed_at_window_end": 129996, + "achieved_publish_msg_per_sec": 12338.24280119278, + "lag_at_window_end": 264, + "peak_lag": 14764, + "drain_secs": 0.198665209, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 22535.120554033427, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.1872324145870508, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 239.623257708, + "setup_secs": 0.008859583, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 175.4472585, + "producers": 8, + "unique_at_start": 61, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.368000653146, + "dispatch_p50_ms": 0.693666, + "dispatch_p95_ms": 2.220625, + "dispatch_p99_ms": 6.400541, + "e2e_p50_ms": 0.69375, + "e2e_p95_ms": 2.220667, + "e2e_p99_ms": 6.402583, + "scaling_efficiency": 1.0000778949111362, + "peak_rss_mb": 0.0, + "cpu_pct": 0.008378585868286183, + "duration_secs": 10.001664542, + "setup_secs": 0.2205585, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.368000653146, + "lag_at_window_end": 0, + "peak_lag": 300, + "drain_secs": 2.08e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249984, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24986.48727741481, + "dispatch_p50_ms": 2.791917, + "dispatch_p95_ms": 6.572, + "dispatch_p99_ms": 13.435291, + "e2e_p50_ms": 2.792, + "e2e_p95_ms": 6.572042, + "e2e_p99_ms": 13.435333, + "scaling_efficiency": 1.1156182045695948, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.005787235606698905, + "duration_secs": 10.004767666, + "setup_secs": 0.2226095, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249984, + "published_at_window_end": 249984, + "processed_at_window_end": 249984, + "achieved_publish_msg_per_sec": 24986.48727741481, + "lag_at_window_end": 0, + "peak_lag": 696, + "drain_secs": 8.4e-8, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 276213, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 27128.41179937488, + "dispatch_p50_ms": 188.063334, + "dispatch_p95_ms": 281.795667, + "dispatch_p99_ms": 300.2075, + "e2e_p50_ms": 188.063375, + "e2e_p95_ms": 281.795708, + "e2e_p99_ms": 300.207542, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.004842021635634577, + "duration_secs": 10.181687083, + "setup_secs": 0.22397125, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 276213, + "published_at_window_end": 276213, + "processed_at_window_end": 276213, + "achieved_publish_msg_per_sec": 27128.41179937488, + "lag_at_window_end": 0, + "peak_lag": 7867, + "drain_secs": 2.08e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 22935.23435501176, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.1445620530977283, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 123.437936416, + "setup_secs": 0.100879917, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 102.742235792, + "producers": 8, + "unique_at_start": 78, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49989, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.197649267767, + "dispatch_p50_ms": 0.784833, + "dispatch_p95_ms": 3.616541, + "dispatch_p99_ms": 13.771792, + "e2e_p50_ms": 0.784917, + "e2e_p95_ms": 3.616583, + "e2e_p99_ms": 13.771833, + "scaling_efficiency": 1.0001682530221212, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.00567919111892782, + "duration_secs": 10.001405208, + "setup_secs": 0.218138042, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49989, + "published_at_window_end": 49989, + "processed_at_window_end": 49989, + "achieved_publish_msg_per_sec": 4998.197649267767, + "lag_at_window_end": 0, + "peak_lag": 389, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249960, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24986.623247405983, + "dispatch_p50_ms": 2.6595, + "dispatch_p95_ms": 7.334833, + "dispatch_p99_ms": 12.214208, + "e2e_p50_ms": 2.659583, + "e2e_p95_ms": 7.334875, + "e2e_p99_ms": 12.214291, + "scaling_efficiency": 1.254533813634412, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0054679401584250675, + "duration_secs": 10.003752709, + "setup_secs": 0.221596125, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249960, + "published_at_window_end": 249960, + "processed_at_window_end": 249960, + "achieved_publish_msg_per_sec": 24986.623247405983, + "lag_at_window_end": 0, + "peak_lag": 471, + "drain_secs": 2.08e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 259603, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 25285.89781915091, + "dispatch_p50_ms": 188.732208, + "dispatch_p95_ms": 298.991917, + "dispatch_p99_ms": 320.569375, + "e2e_p50_ms": 188.73225, + "e2e_p95_ms": 298.991959, + "e2e_p99_ms": 320.569458, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.005386334584879941, + "duration_secs": 10.266710791, + "setup_secs": 0.217670958, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 259603, + "published_at_window_end": 259603, + "processed_at_window_end": 259603, + "achieved_publish_msg_per_sec": 25285.89781915091, + "lag_at_window_end": 0, + "peak_lag": 8000, + "drain_secs": 2.09e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11066.99481680474, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0772921027548708, + "peak_rss_mb": 0.0, + "cpu_pct": 0.01076475404424298, + "duration_secs": 3.9951225, + "setup_secs": 0.013576917, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 7.035294084, + "producers": 8, + "unique_at_start": 23, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49978, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4995.176782912454, + "dispatch_p50_ms": 2.513041, + "dispatch_p95_ms": 4.80275, + "dispatch_p99_ms": 7.802834, + "e2e_p50_ms": 2.513083, + "e2e_p95_ms": 4.802792, + "e2e_p99_ms": 7.803, + "scaling_efficiency": 0.9999064009404212, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0066365032829287076, + "duration_secs": 10.0052515, + "setup_secs": 0.222315625, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49978, + "published_at_window_end": 49978, + "processed_at_window_end": 49978, + "achieved_publish_msg_per_sec": 4995.176782912454, + "lag_at_window_end": 0, + "peak_lag": 84, + "drain_secs": 2.5e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 106552, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 6654.778171600018, + "dispatch_p50_ms": 1466.310333, + "dispatch_p95_ms": 5281.450333, + "dispatch_p99_ms": 5507.117792, + "e2e_p50_ms": 1466.310458, + "e2e_p95_ms": 5281.450375, + "e2e_p99_ms": 5507.117834, + "scaling_efficiency": 1.3534929201567056, + "peak_rss_mb": 24.953125, + "cpu_pct": 0.0043828877872806775, + "duration_secs": 11.68258325, + "setup_secs": 0.219685959, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 106552, + "published_at_window_end": 106552, + "processed_at_window_end": 77745, + "achieved_publish_msg_per_sec": 9120.585552001095, + "lag_at_window_end": 28807, + "peak_lag": 36341, + "drain_secs": 2.919646458, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 29850.33050256082, + "dispatch_p50_ms": 155.590542, + "dispatch_p95_ms": 184.897292, + "dispatch_p99_ms": 190.480208, + "e2e_p50_ms": 155.590584, + "e2e_p95_ms": 184.897417, + "e2e_p99_ms": 190.48025, + "scaling_efficiency": 1.428423883504954, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.335004666, + "setup_secs": 0.209723292 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 32182.655881722305, + "dispatch_p50_ms": 113.209584, + "dispatch_p95_ms": 161.099916, + "dispatch_p99_ms": 169.2135, + "e2e_p50_ms": 113.209667, + "e2e_p95_ms": 161.100041, + "e2e_p99_ms": 169.213541, + "scaling_efficiency": 1.737312553528808, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.310726375, + "setup_secs": 0.210923667 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 17530.77179001918, + "dispatch_p50_ms": 202.330833, + "dispatch_p95_ms": 240.765875, + "dispatch_p99_ms": 247.152542, + "e2e_p50_ms": 202.330875, + "e2e_p95_ms": 240.765917, + "e2e_p99_ms": 247.152584, + "scaling_efficiency": 1.7266387275484238, + "peak_rss_mb": 0.984375, + "cpu_pct": 0.0, + "duration_secs": 0.570425542, + "setup_secs": 0.206563958 + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 25996.88819808347, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.2582144463941412, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 207.708513375, + "setup_secs": 0.007676584, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 175.204911875, + "producers": 8, + "unique_at_start": 225, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.809280569608, + "dispatch_p50_ms": 0.62725, + "dispatch_p95_ms": 1.287459, + "dispatch_p99_ms": 2.804292, + "e2e_p50_ms": 0.627292, + "e2e_p95_ms": 1.287667, + "e2e_p99_ms": 2.8045, + "scaling_efficiency": 1.0000552081847904, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0077093818361842975, + "duration_secs": 10.000781625, + "setup_secs": 0.21915625, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.809280569608, + "lag_at_window_end": 0, + "peak_lag": 24, + "drain_secs": 2.92e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249906, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24986.78940967051, + "dispatch_p50_ms": 2.969, + "dispatch_p95_ms": 7.070625, + "dispatch_p99_ms": 15.909417, + "e2e_p50_ms": 2.969083, + "e2e_p95_ms": 7.070666, + "e2e_p99_ms": 15.9095, + "scaling_efficiency": 0.9998877671466851, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.007438858289386532, + "duration_secs": 10.001525042, + "setup_secs": 0.222559167, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249906, + "published_at_window_end": 249906, + "processed_at_window_end": 249906, + "achieved_publish_msg_per_sec": 24986.78940967051, + "lag_at_window_end": 0, + "peak_lag": 459, + "drain_secs": 8.3e-8, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 283527, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 27571.12523084392, + "dispatch_p50_ms": 178.281916, + "dispatch_p95_ms": 274.798458, + "dispatch_p99_ms": 291.92175, + "e2e_p50_ms": 178.282041, + "e2e_p95_ms": 274.798583, + "e2e_p99_ms": 291.921833, + "scaling_efficiency": 1.115178520983409, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.004210629668189375, + "duration_secs": 10.283475833, + "setup_secs": 0.222652834, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 283527, + "published_at_window_end": 283527, + "processed_at_window_end": 283527, + "achieved_publish_msg_per_sec": 27571.12523084392, + "lag_at_window_end": 0, + "peak_lag": 7998, + "drain_secs": 3.34e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 26029.16334085012, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.5436397763741898, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 99.974823083, + "setup_secs": 9.296198, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 103.1043575, + "producers": 8, + "unique_at_start": 228895, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.673473227443, + "dispatch_p50_ms": 1.01525, + "dispatch_p95_ms": 5.156541, + "dispatch_p99_ms": 14.763167, + "e2e_p50_ms": 1.015292, + "e2e_p95_ms": 5.156583, + "e2e_p99_ms": 14.76325, + "scaling_efficiency": 1.0045414475099732, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.006309325481860395, + "duration_secs": 10.001053333, + "setup_secs": 0.216459958, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.673473227443, + "lag_at_window_end": 0, + "peak_lag": 134, + "drain_secs": 3.34e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249824, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24972.74917869162, + "dispatch_p50_ms": 6.104583, + "dispatch_p95_ms": 33.41375, + "dispatch_p99_ms": 46.741209, + "e2e_p50_ms": 6.104666, + "e2e_p95_ms": 33.413792, + "e2e_p99_ms": 46.741292, + "scaling_efficiency": 8.62272560346183, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.003968462317998126, + "duration_secs": 10.003864541, + "setup_secs": 0.219900333, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249824, + "published_at_window_end": 249824, + "processed_at_window_end": 249824, + "achieved_publish_msg_per_sec": 24972.74917869162, + "lag_at_window_end": 0, + "peak_lag": 1813, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 251866, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24400.95640875232, + "dispatch_p50_ms": 204.165083, + "dispatch_p95_ms": 312.378958, + "dispatch_p99_ms": 333.150166, + "e2e_p50_ms": 204.165208, + "e2e_p95_ms": 312.379, + "e2e_p99_ms": 333.150208, + "scaling_efficiency": 1.0565560759201278, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.003042051224524895, + "duration_secs": 10.321972458, + "setup_secs": 0.227194916, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 251866, + "published_at_window_end": 251866, + "processed_at_window_end": 251866, + "achieved_publish_msg_per_sec": 24400.95640875232, + "lag_at_window_end": 0, + "peak_lag": 7997, + "drain_secs": 1.67e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 8070.157014661179, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 5.786300990549382, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 5.479447292, + "setup_secs": 0.01262275, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 9.948340458, + "producers": 8, + "unique_at_start": 17, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49952, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4986.2026884429415, + "dispatch_p50_ms": 9.113875, + "dispatch_p95_ms": 226.042708, + "dispatch_p99_ms": 295.38075, + "e2e_p50_ms": 9.113958, + "e2e_p95_ms": 226.042792, + "e2e_p99_ms": 295.380792, + "scaling_efficiency": 2.481791152006264, + "peak_rss_mb": 1.8125, + "cpu_pct": 0.006258695232958266, + "duration_secs": 10.018044416, + "setup_secs": 0.219127, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49952, + "published_at_window_end": 49952, + "processed_at_window_end": 49952, + "achieved_publish_msg_per_sec": 4986.2026884429415, + "lag_at_window_end": 0, + "peak_lag": 1790, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 117301, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11515.889343604198, + "dispatch_p50_ms": 440.92825, + "dispatch_p95_ms": 973.131667, + "dispatch_p99_ms": 1153.0925, + "e2e_p50_ms": 440.928375, + "e2e_p95_ms": 973.13175, + "e2e_p99_ms": 1153.0925, + "scaling_efficiency": 1.6046586686736255, + "peak_rss_mb": 49.015625, + "cpu_pct": 0.005330833373152048, + "duration_secs": 10.186013125, + "setup_secs": 0.219686041, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 117301, + "published_at_window_end": 117301, + "processed_at_window_end": 117301, + "achieved_publish_msg_per_sec": 11515.889343604198, + "lag_at_window_end": 0, + "peak_lag": 10746, + "drain_secs": 2.5e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 37003.17549989648, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.41344979198317, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 145.784785417, + "setup_secs": 0.272799708, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 174.538732084, + "producers": 8, + "unique_at_start": 5500, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4920.803297036531, + "dispatch_p50_ms": 129.283333, + "dispatch_p95_ms": 243.57875, + "dispatch_p99_ms": 256.738208, + "e2e_p50_ms": 129.328, + "e2e_p95_ms": 243.581708, + "e2e_p99_ms": 256.775084, + "scaling_efficiency": 0.9947847939125009, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.006848114705350887, + "duration_secs": 10.003854458, + "setup_secs": 0.464980666, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49227, + "achieved_publish_msg_per_sec": 4997.2738217939395, + "lag_at_window_end": 765, + "peak_lag": 1407, + "drain_secs": 0.2324705, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249920, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24898.57791337666, + "dispatch_p50_ms": 42.104417, + "dispatch_p95_ms": 76.693541, + "dispatch_p99_ms": 83.260541, + "e2e_p50_ms": 42.136542, + "e2e_p95_ms": 76.702125, + "e2e_p99_ms": 83.279833, + "scaling_efficiency": 1.3938072557247343, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.003611168330587705, + "duration_secs": 10.0004105, + "setup_secs": 0.4662195, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249920, + "published_at_window_end": 249920, + "processed_at_window_end": 248996, + "achieved_publish_msg_per_sec": 24990.974120512354, + "lag_at_window_end": 924, + "peak_lag": 2388, + "drain_secs": 0.245523, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 346829, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 34180.98983369068, + "dispatch_p50_ms": 159.200709, + "dispatch_p95_ms": 252.082375, + "dispatch_p99_ms": 276.005667, + "e2e_p50_ms": 159.215834, + "e2e_p95_ms": 252.088625, + "e2e_p99_ms": 276.013208, + "scaling_efficiency": 0.9633147962710368, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.007144400526676258, + "duration_secs": 10.122468708, + "setup_secs": 0.4695995, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 346829, + "published_at_window_end": 346829, + "processed_at_window_end": 345996, + "achieved_publish_msg_per_sec": 34263.28201201489, + "lag_at_window_end": 833, + "peak_lag": 9833, + "drain_secs": 0.2352345, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 36817.77318495172, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.9996779232488535, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0, + "duration_secs": 76.814966125, + "setup_secs": 0.119507125, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 101.782809958, + "producers": 8, + "unique_at_start": 3000, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4907.683680055907, + "dispatch_p50_ms": 128.206208, + "dispatch_p95_ms": 240.751166, + "dispatch_p99_ms": 250.614291, + "e2e_p50_ms": 128.227833, + "e2e_p95_ms": 240.755333, + "e2e_p99_ms": 250.618541, + "scaling_efficiency": 0.9916429497591348, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.006280423535474948, + "duration_secs": 10.002070875, + "setup_secs": 0.468118958, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49087, + "achieved_publish_msg_per_sec": 4998.164942517466, + "lag_at_window_end": 905, + "peak_lag": 1069, + "drain_secs": 0.092747709, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24888.229399254345, + "dispatch_p50_ms": 42.086375, + "dispatch_p95_ms": 77.493417, + "dispatch_p99_ms": 92.106958, + "e2e_p50_ms": 42.122875, + "e2e_p95_ms": 77.497667, + "e2e_p99_ms": 92.112542, + "scaling_efficiency": 1.2098481024330938, + "peak_rss_mb": 0.234375, + "cpu_pct": 0.0069448661030435946, + "duration_secs": 10.004568666, + "setup_secs": 0.469981, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249992, + "published_at_window_end": 249992, + "processed_at_window_end": 248996, + "achieved_publish_msg_per_sec": 24987.783916120705, + "lag_at_window_end": 996, + "peak_lag": 2090, + "drain_secs": 0.24754525, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 314910, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 30995.094260527527, + "dispatch_p50_ms": 171.834083, + "dispatch_p95_ms": 276.834542, + "dispatch_p99_ms": 298.641125, + "e2e_p50_ms": 171.861, + "e2e_p95_ms": 276.850292, + "e2e_p99_ms": 298.673125, + "scaling_efficiency": 1.0034952380348665, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.007593959927952575, + "duration_secs": 10.130506375, + "setup_secs": 0.469354333, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 314910, + "published_at_window_end": 314910, + "processed_at_window_end": 313996, + "achieved_publish_msg_per_sec": 31085.31679888509, + "lag_at_window_end": 914, + "peak_lag": 9414, + "drain_secs": 0.246108583, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 12721.336240050689, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.9892063108566367, + "peak_rss_mb": 0.515625, + "cpu_pct": 0.0, + "duration_secs": 3.320170083, + "setup_secs": 0.076216792, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 5.597178167, + "producers": 8, + "unique_at_start": 2000, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49952, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4853.997456684909, + "dispatch_p50_ms": 143.777084, + "dispatch_p95_ms": 254.343542, + "dispatch_p99_ms": 265.405625, + "e2e_p50_ms": 143.806209, + "e2e_p95_ms": 254.350375, + "e2e_p99_ms": 265.418, + "scaling_efficiency": 0.984932963201626, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.004304766276623398, + "duration_secs": 10.2908995, + "setup_secs": 0.468082625, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49952, + "published_at_window_end": 49952, + "processed_at_window_end": 49952, + "achieved_publish_msg_per_sec": 4853.997456684909, + "lag_at_window_end": 0, + "peak_lag": 2164, + "drain_secs": 6.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 113795, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 10905.512816442684, + "dispatch_p50_ms": 371.036167, + "dispatch_p95_ms": 907.355708, + "dispatch_p99_ms": 1533.451, + "e2e_p50_ms": 371.038834, + "e2e_p95_ms": 907.364583, + "e2e_p99_ms": 1533.468541, + "scaling_efficiency": 1.8831348068620453, + "peak_rss_mb": 133.25, + "cpu_pct": 0.003486421047466064, + "duration_secs": 10.352012042, + "setup_secs": 0.46786875, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 113795, + "published_at_window_end": 113795, + "processed_at_window_end": 112894, + "achieved_publish_msg_per_sec": 10992.54903668127, + "lag_at_window_end": 901, + "peak_lag": 9441, + "drain_secs": 0.059762958, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 28157.97773296219, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.483465056849215, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 191.767464667, + "setup_secs": 0.010813083, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 176.306224, + "producers": 8, + "unique_at_start": 216, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49990, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.524827733564, + "dispatch_p50_ms": 1.315, + "dispatch_p95_ms": 15.05425, + "dispatch_p99_ms": 28.876583, + "e2e_p50_ms": 1.315083, + "e2e_p95_ms": 15.054334, + "e2e_p99_ms": 28.876708, + "scaling_efficiency": 1.0001092730122343, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.006939310924819508, + "duration_secs": 10.000950625, + "setup_secs": 0.218830584, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49990, + "published_at_window_end": 49990, + "processed_at_window_end": 49990, + "achieved_publish_msg_per_sec": 4998.524827733564, + "lag_at_window_end": 0, + "peak_lag": 536, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249960, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24984.703790798587, + "dispatch_p50_ms": 3.601167, + "dispatch_p95_ms": 140.609667, + "dispatch_p99_ms": 212.564166, + "e2e_p50_ms": 3.601291, + "e2e_p95_ms": 140.609708, + "e2e_p99_ms": 212.564291, + "scaling_efficiency": 1.1155385739230548, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.007616548815760195, + "duration_secs": 10.00452125, + "setup_secs": 0.221292042, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249960, + "published_at_window_end": 249960, + "processed_at_window_end": 249960, + "achieved_publish_msg_per_sec": 24984.703790798587, + "lag_at_window_end": 0, + "peak_lag": 5655, + "drain_secs": 1.67e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 275333, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 27365.43744304747, + "dispatch_p50_ms": 185.906625, + "dispatch_p95_ms": 276.223833, + "dispatch_p99_ms": 295.2765, + "e2e_p50_ms": 185.906666, + "e2e_p95_ms": 276.223875, + "e2e_p99_ms": 295.276583, + "scaling_efficiency": 1.0087371736106592, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.006321218767340686, + "duration_secs": 10.061341083, + "setup_secs": 0.225306292, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 275333, + "published_at_window_end": 275333, + "processed_at_window_end": 275333, + "achieved_publish_msg_per_sec": 27365.43744304747, + "lag_at_window_end": 0, + "peak_lag": 7997, + "drain_secs": 2.09e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 10866.813206876452, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 0.5422984497201859, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 260.493020917, + "setup_secs": 0.269055625, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 111.4758415, + "producers": 8, + "unique_at_start": 427, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49984, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4989.481364429599, + "dispatch_p50_ms": 2.186334, + "dispatch_p95_ms": 14.526375, + "dispatch_p99_ms": 31.094208, + "e2e_p50_ms": 2.186417, + "e2e_p95_ms": 14.526459, + "e2e_p99_ms": 31.09425, + "scaling_efficiency": 0.9984240740217748, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.004442052392181601, + "duration_secs": 10.017874875, + "setup_secs": 0.218239541, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49984, + "published_at_window_end": 49984, + "processed_at_window_end": 49984, + "achieved_publish_msg_per_sec": 4989.481364429599, + "lag_at_window_end": 0, + "peak_lag": 473, + "drain_secs": 3.33e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 101932, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 9777.81866634931, + "dispatch_p50_ms": 546.407791, + "dispatch_p95_ms": 811.848709, + "dispatch_p99_ms": 923.730417, + "e2e_p50_ms": 546.407875, + "e2e_p95_ms": 811.84875, + "e2e_p99_ms": 923.7305, + "scaling_efficiency": 0.4909268458992118, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.003414921049178195, + "duration_secs": 10.424820042, + "setup_secs": 0.256348958, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 101932, + "published_at_window_end": 101932, + "processed_at_window_end": 101932, + "achieved_publish_msg_per_sec": 9777.81866634931, + "lag_at_window_end": 0, + "peak_lag": 8000, + "drain_secs": 5e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 7188.526718401642, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 0.6997512145227842, + "peak_rss_mb": 0.0, + "cpu_pct": 0.006151728588858753, + "duration_secs": 5.958940083, + "setup_secs": 0.114777833, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 9.613438958, + "producers": 8, + "unique_at_start": 1401, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49885, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4931.089482506822, + "dispatch_p50_ms": 55.653416, + "dispatch_p95_ms": 184.1135, + "dispatch_p99_ms": 324.015541, + "e2e_p50_ms": 55.6535, + "e2e_p95_ms": 184.113583, + "e2e_p99_ms": 324.015583, + "scaling_efficiency": 0.987077765502774, + "peak_rss_mb": 22.21875, + "cpu_pct": 0.003894641545491763, + "duration_secs": 10.116425625, + "setup_secs": 0.225993917, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49885, + "published_at_window_end": 49885, + "processed_at_window_end": 49885, + "achieved_publish_msg_per_sec": 4931.089482506822, + "lag_at_window_end": 0, + "peak_lag": 1863, + "drain_secs": 5e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 59966, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 5900.9012488614035, + "dispatch_p50_ms": 900.93875, + "dispatch_p95_ms": 1397.645042, + "dispatch_p99_ms": 1526.337375, + "e2e_p50_ms": 900.938791, + "e2e_p95_ms": 1397.645125, + "e2e_p99_ms": 1526.337542, + "scaling_efficiency": 1.2001644317706066, + "peak_rss_mb": 320.453125, + "cpu_pct": 0.0035917313118590546, + "duration_secs": 10.1621765, + "setup_secs": 0.223900666, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 59966, + "published_at_window_end": 59966, + "processed_at_window_end": 59966, + "achieved_publish_msg_per_sec": 5900.9012488614035, + "lag_at_window_end": 0, + "peak_lag": 8000, + "drain_secs": 7.5e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 30343.52092723076, + "dispatch_p50_ms": 249.512416, + "dispatch_p95_ms": 362.814, + "dispatch_p99_ms": 382.307458, + "e2e_p50_ms": 249.512458, + "e2e_p95_ms": 362.814167, + "e2e_p99_ms": 382.307542, + "scaling_efficiency": 1.4520244591050817, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 0.659119291, + "setup_secs": 0.213747167 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 32634.33087682433, + "dispatch_p50_ms": 258.689625, + "dispatch_p95_ms": 357.921375, + "dispatch_p99_ms": 375.771917, + "e2e_p50_ms": 258.689708, + "e2e_p95_ms": 357.921542, + "e2e_p99_ms": 375.772, + "scaling_efficiency": 1.761695272033761, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.612851542, + "setup_secs": 0.211503416 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 15571.136640422166, + "dispatch_p50_ms": 540.014, + "dispatch_p95_ms": 802.204875, + "dispatch_p99_ms": 844.080583, + "e2e_p50_ms": 540.014125, + "e2e_p95_ms": 802.205167, + "e2e_p99_ms": 844.080667, + "scaling_efficiency": 1.5336305712797005, + "peak_rss_mb": 2.5625, + "cpu_pct": 0.0, + "duration_secs": 1.28442775, + "setup_secs": 0.214779583 + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 26077.59841862733, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.2621207125859322, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 204.205729167, + "setup_secs": 2.940799459, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 244.638980583, + "producers": 8, + "unique_at_start": 74805, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.659082604024, + "dispatch_p50_ms": 0.931334, + "dispatch_p95_ms": 3.036125, + "dispatch_p99_ms": 7.300667, + "e2e_p50_ms": 0.931459, + "e2e_p95_ms": 3.036209, + "e2e_p99_ms": 7.300708, + "scaling_efficiency": 1.0000251597773977, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.005439400713934083, + "duration_secs": 10.001082125, + "setup_secs": 0.224018291, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.659082604024, + "lag_at_window_end": 0, + "peak_lag": 281, + "drain_secs": 2.08e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249386, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24936.505956912268, + "dispatch_p50_ms": 6.391875, + "dispatch_p95_ms": 21.69875, + "dispatch_p99_ms": 38.941542, + "e2e_p50_ms": 6.391958, + "e2e_p95_ms": 21.698916, + "e2e_p99_ms": 38.941584, + "scaling_efficiency": 0.9978755914934416, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.004129648375316196, + "duration_secs": 10.00083975, + "setup_secs": 0.221641916, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249386, + "published_at_window_end": 249386, + "processed_at_window_end": 249386, + "achieved_publish_msg_per_sec": 24936.505956912268, + "lag_at_window_end": 0, + "peak_lag": 1507, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 138717, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 13836.37602119814, + "dispatch_p50_ms": 267.325917, + "dispatch_p95_ms": 845.350167, + "dispatch_p99_ms": 948.545958, + "e2e_p50_ms": 267.326125, + "e2e_p95_ms": 845.350208, + "e2e_p99_ms": 948.546, + "scaling_efficiency": 0.55964452730527, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0045184489604141636, + "duration_secs": 10.025529791, + "setup_secs": 0.224201958, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 138717, + "published_at_window_end": 138717, + "processed_at_window_end": 138717, + "achieved_publish_msg_per_sec": 13836.37602119814, + "lag_at_window_end": 0, + "peak_lag": 7999, + "drain_secs": 6.67e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 27835.362256509074, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.6507550322026177, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0, + "duration_secs": 93.469378125, + "setup_secs": 9.43035475, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 109.013251083, + "producers": 8, + "unique_at_start": 229402, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49640, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4958.597855566254, + "dispatch_p50_ms": 1.041166, + "dispatch_p95_ms": 30.043417, + "dispatch_p99_ms": 62.691875, + "e2e_p50_ms": 1.04125, + "e2e_p95_ms": 30.0435, + "e2e_p99_ms": 62.692, + "scaling_efficiency": 0.9964877870356804, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.006083358288142869, + "duration_secs": 10.0108945, + "setup_secs": 0.21823625, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49640, + "published_at_window_end": 49640, + "processed_at_window_end": 49640, + "achieved_publish_msg_per_sec": 4958.597855566254, + "lag_at_window_end": 0, + "peak_lag": 1121, + "drain_secs": 5e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249968, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24980.94116176522, + "dispatch_p50_ms": 4.023167, + "dispatch_p95_ms": 35.186583, + "dispatch_p99_ms": 55.949459, + "e2e_p50_ms": 4.023209, + "e2e_p95_ms": 35.186625, + "e2e_p99_ms": 55.9495, + "scaling_efficiency": 8.625554175586045, + "peak_rss_mb": 0.1875, + "cpu_pct": 0.0048169370895392565, + "duration_secs": 10.006348375, + "setup_secs": 0.232748291, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249968, + "published_at_window_end": 249968, + "processed_at_window_end": 249968, + "achieved_publish_msg_per_sec": 24980.94116176522, + "lag_at_window_end": 0, + "peak_lag": 1504, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 226890, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 22478.213270424752, + "dispatch_p50_ms": 217.933208, + "dispatch_p95_ms": 321.593375, + "dispatch_p99_ms": 497.188666, + "e2e_p50_ms": 217.933291, + "e2e_p95_ms": 321.593375, + "e2e_p99_ms": 497.18875, + "scaling_efficiency": 0.9733017185415352, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0032693387683298335, + "duration_secs": 10.093773792, + "setup_secs": 0.23531125, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 226890, + "published_at_window_end": 226890, + "processed_at_window_end": 226890, + "achieved_publish_msg_per_sec": 22478.213270424752, + "lag_at_window_end": 0, + "peak_lag": 8000, + "drain_secs": 1.66e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49985, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4996.350320274702, + "dispatch_p50_ms": 3.931084, + "dispatch_p95_ms": 28.406417, + "dispatch_p99_ms": 58.104667, + "e2e_p50_ms": 3.931125, + "e2e_p95_ms": 28.406542, + "e2e_p99_ms": 58.104709, + "scaling_efficiency": 2.4868419500719448, + "peak_rss_mb": 2.21875, + "cpu_pct": 0.00426815454047915, + "duration_secs": 10.0043025, + "setup_secs": 0.219697083, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49985, + "published_at_window_end": 49985, + "processed_at_window_end": 49985, + "achieved_publish_msg_per_sec": 4996.350320274702, + "lag_at_window_end": 0, + "peak_lag": 673, + "drain_secs": 2.92e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 116847, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11443.24094129621, + "dispatch_p50_ms": 360.172416, + "dispatch_p95_ms": 715.856916, + "dispatch_p99_ms": 885.428625, + "e2e_p50_ms": 360.1725, + "e2e_p95_ms": 715.856958, + "e2e_p99_ms": 885.429541, + "scaling_efficiency": 1.594535621720804, + "peak_rss_mb": 481.03125, + "cpu_pct": 0.004759565417259895, + "duration_secs": 10.211005833, + "setup_secs": 0.227308959, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 116847, + "published_at_window_end": 116847, + "processed_at_window_end": 116847, + "achieved_publish_msg_per_sec": 11443.24094129621, + "lag_at_window_end": 0, + "peak_lag": 8348, + "drain_secs": 1.67e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 32796.43792914169, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.2527605466958898, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 161.709634792, + "setup_secs": 2.935446583, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 188.975334959, + "producers": 8, + "unique_at_start": 96500, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4855.913694747704, + "dispatch_p50_ms": 131.707125, + "dispatch_p95_ms": 246.640333, + "dispatch_p99_ms": 254.719084, + "e2e_p50_ms": 131.724875, + "e2e_p95_ms": 246.642708, + "e2e_p99_ms": 254.72075, + "scaling_efficiency": 0.9816667752185144, + "peak_rss_mb": 0.328125, + "cpu_pct": 0.0063240336309836175, + "duration_secs": 10.001825208, + "setup_secs": 0.466896916, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 48568, + "achieved_publish_msg_per_sec": 4998.287708528809, + "lag_at_window_end": 1424, + "peak_lag": 1424, + "drain_secs": 0.070825458, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249968, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24840.585560161137, + "dispatch_p50_ms": 82.818625, + "dispatch_p95_ms": 152.549208, + "dispatch_p99_ms": 162.834041, + "e2e_p50_ms": 82.868667, + "e2e_p95_ms": 152.557375, + "e2e_p99_ms": 162.836208, + "scaling_efficiency": 1.3905608790453288, + "peak_rss_mb": 1.21875, + "cpu_pct": 0.004311693846357136, + "duration_secs": 10.003628916, + "setup_secs": 0.469728666, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249968, + "published_at_window_end": 249968, + "processed_at_window_end": 248496, + "achieved_publish_msg_per_sec": 24987.732161895397, + "lag_at_window_end": 1472, + "peak_lag": 3776, + "drain_secs": 0.224323709, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 310683, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 30508.083958149266, + "dispatch_p50_ms": 210.092791, + "dispatch_p95_ms": 331.910042, + "dispatch_p99_ms": 354.279834, + "e2e_p50_ms": 210.097416, + "e2e_p95_ms": 331.928417, + "e2e_p99_ms": 354.310167, + "scaling_efficiency": 0.8598021539387057, + "peak_rss_mb": 1.09375, + "cpu_pct": 0.007313977258025489, + "duration_secs": 10.144721, + "setup_secs": 0.484501458, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 310683, + "published_at_window_end": 310683, + "processed_at_window_end": 309496, + "achieved_publish_msg_per_sec": 30625.09062595215, + "lag_at_window_end": 1187, + "peak_lag": 10687, + "drain_secs": 0.246285292, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 30421.541763869176, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.6522804122566042, + "peak_rss_mb": 0.421875, + "cpu_pct": 0.0, + "duration_secs": 88.248518791, + "setup_secs": 4.968185917, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 103.375333833, + "producers": 8, + "unique_at_start": 146500, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4981.39900879106, + "dispatch_p50_ms": 130.263625, + "dispatch_p95_ms": 245.424375, + "dispatch_p99_ms": 253.267542, + "e2e_p50_ms": 130.281875, + "e2e_p95_ms": 245.429667, + "e2e_p99_ms": 253.270459, + "scaling_efficiency": 1.0065378147901587, + "peak_rss_mb": 0.0, + "cpu_pct": 0.006979419131105838, + "duration_secs": 10.002009458, + "setup_secs": 0.467386209, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49824, + "achieved_publish_msg_per_sec": 4998.195633579854, + "lag_at_window_end": 168, + "peak_lag": 1480, + "drain_secs": 0.256670625, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249952, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24888.04323712284, + "dispatch_p50_ms": 83.774958, + "dispatch_p95_ms": 153.71175, + "dispatch_p99_ms": 171.160667, + "e2e_p50_ms": 83.842375, + "e2e_p95_ms": 153.719583, + "e2e_p99_ms": 171.17125, + "scaling_efficiency": 1.2098390528579743, + "peak_rss_mb": 0.640625, + "cpu_pct": 0.006964352527320162, + "duration_secs": 10.0046435, + "setup_secs": 0.470875292, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249952, + "published_at_window_end": 249952, + "processed_at_window_end": 248996, + "achieved_publish_msg_per_sec": 24983.598865866636, + "lag_at_window_end": 956, + "peak_lag": 4323, + "drain_secs": 0.247508208, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 291105, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 28465.02564500628, + "dispatch_p50_ms": 225.291584, + "dispatch_p95_ms": 364.524708, + "dispatch_p99_ms": 423.688708, + "e2e_p50_ms": 225.362958, + "e2e_p95_ms": 364.533167, + "e2e_p99_ms": 423.707416, + "scaling_efficiency": 0.9215818943864698, + "peak_rss_mb": 0.140625, + "cpu_pct": 0.005287343519513651, + "duration_secs": 10.135104166, + "setup_secs": 0.468796333, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 291105, + "published_at_window_end": 291105, + "processed_at_window_end": 288496, + "achieved_publish_msg_per_sec": 28722.447764924134, + "lag_at_window_end": 2609, + "peak_lag": 11109, + "drain_secs": 0.210307459, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49171, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4884.649049048609, + "dispatch_p50_ms": 134.593834, + "dispatch_p95_ms": 245.007958, + "dispatch_p99_ms": 256.592042, + "e2e_p50_ms": 134.599708, + "e2e_p95_ms": 245.0105, + "e2e_p99_ms": 256.594625, + "scaling_efficiency": 0.9911525304681994, + "peak_rss_mb": 2.609375, + "cpu_pct": 0.007878916626287783, + "duration_secs": 10.043505584, + "setup_secs": 0.465987083, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49171, + "published_at_window_end": 49171, + "processed_at_window_end": 49059, + "achieved_publish_msg_per_sec": 4895.800533862679, + "lag_at_window_end": 112, + "peak_lag": 2264, + "drain_secs": 0.249617791, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 133119, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 13120.743585071845, + "dispatch_p50_ms": 362.939792, + "dispatch_p95_ms": 689.781209, + "dispatch_p99_ms": 837.638542, + "e2e_p50_ms": 362.941917, + "e2e_p95_ms": 689.787917, + "e2e_p99_ms": 837.649958, + "scaling_efficiency": 2.2656549355209816, + "peak_rss_mb": 909.359375, + "cpu_pct": 0.004648968434261287, + "duration_secs": 10.065816708, + "setup_secs": 0.492351, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 133119, + "published_at_window_end": 133119, + "processed_at_window_end": 132071, + "achieved_publish_msg_per_sec": 13224.858336055448, + "lag_at_window_end": 1048, + "peak_lag": 8970, + "drain_secs": 0.172975, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 27546.48510694803, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.4512493930747856, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 195.818086375, + "setup_secs": 0.207195959, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 182.387310708, + "producers": 8, + "unique_at_start": 5900, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.328916228124, + "dispatch_p50_ms": 0.685208, + "dispatch_p95_ms": 1.486, + "dispatch_p99_ms": 3.393875, + "e2e_p50_ms": 0.685333, + "e2e_p95_ms": 1.486042, + "e2e_p99_ms": 3.393958, + "scaling_efficiency": 1.0000700748647744, + "peak_rss_mb": 0.0, + "cpu_pct": 0.008638465485510782, + "duration_secs": 10.00174275, + "setup_secs": 0.22475575, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.328916228124, + "lag_at_window_end": 0, + "peak_lag": 18, + "drain_secs": 5.42e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249949, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24976.542865407497, + "dispatch_p50_ms": 3.788167, + "dispatch_p95_ms": 8.780458, + "dispatch_p99_ms": 15.215584, + "e2e_p50_ms": 3.78825, + "e2e_p95_ms": 8.7805, + "e2e_p99_ms": 15.215625, + "scaling_efficiency": 1.1151741978972711, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0061454749604864835, + "duration_secs": 10.00734975, + "setup_secs": 0.230496083, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249949, + "published_at_window_end": 249949, + "processed_at_window_end": 249949, + "achieved_publish_msg_per_sec": 24976.542865407497, + "lag_at_window_end": 0, + "peak_lag": 664, + "drain_secs": 2.5e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 259395, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 25764.9344096201, + "dispatch_p50_ms": 201.791333, + "dispatch_p95_ms": 293.689666, + "dispatch_p99_ms": 309.311375, + "e2e_p50_ms": 201.791375, + "e2e_p95_ms": 293.68975, + "e2e_p99_ms": 309.311416, + "scaling_efficiency": 0.9497398742013272, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.003118865786878871, + "duration_secs": 10.067753167, + "setup_secs": 0.221049625, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 259395, + "published_at_window_end": 259395, + "processed_at_window_end": 259395, + "achieved_publish_msg_per_sec": 25764.9344096201, + "lag_at_window_end": 0, + "peak_lag": 7972, + "drain_secs": 2.08e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 27942.14635186056, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.3944274517279651, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.0, + "duration_secs": 101.000723583, + "setup_secs": 0.618317542, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 102.476759292, + "producers": 8, + "unique_at_start": 8979, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.411146754091, + "dispatch_p50_ms": 0.858875, + "dispatch_p95_ms": 3.422958, + "dispatch_p99_ms": 10.841458, + "e2e_p50_ms": 0.859, + "e2e_p95_ms": 3.423042, + "e2e_p99_ms": 10.8415, + "scaling_efficiency": 1.0002109751037405, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.00648895836062651, + "duration_secs": 10.001578208, + "setup_secs": 0.227245666, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.411146754091, + "lag_at_window_end": 0, + "peak_lag": 376, + "drain_secs": 1.67e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249882, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24983.672646220595, + "dispatch_p50_ms": 3.82125, + "dispatch_p95_ms": 16.118041, + "dispatch_p99_ms": 31.731125, + "e2e_p50_ms": 3.821291, + "e2e_p95_ms": 16.118125, + "e2e_p99_ms": 31.731166, + "scaling_efficiency": 1.2543856692084538, + "peak_rss_mb": 0.078125, + "cpu_pct": 0.005229044086640968, + "duration_secs": 10.001812125, + "setup_secs": 0.222615708, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249882, + "published_at_window_end": 249882, + "processed_at_window_end": 249882, + "achieved_publish_msg_per_sec": 24983.672646220595, + "lag_at_window_end": 0, + "peak_lag": 1072, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 243105, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 23762.40575403757, + "dispatch_p50_ms": 215.353833, + "dispatch_p95_ms": 314.76425, + "dispatch_p99_ms": 329.752625, + "e2e_p50_ms": 215.353916, + "e2e_p95_ms": 314.764291, + "e2e_p99_ms": 329.752667, + "scaling_efficiency": 0.9397493387021644, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0028737131010182354, + "duration_secs": 10.230656042, + "setup_secs": 0.223593083, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 243105, + "published_at_window_end": 243105, + "processed_at_window_end": 243105, + "achieved_publish_msg_per_sec": 23762.40575403757, + "lag_at_window_end": 0, + "peak_lag": 7978, + "drain_secs": 2.91e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49974, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4991.008452188522, + "dispatch_p50_ms": 4.703333, + "dispatch_p95_ms": 56.119333, + "dispatch_p99_ms": 86.996625, + "e2e_p50_ms": 4.703416, + "e2e_p95_ms": 56.119375, + "e2e_p99_ms": 86.996625, + "scaling_efficiency": 0.9990720079342812, + "peak_rss_mb": 0.515625, + "cpu_pct": 0.005512922532912282, + "duration_secs": 10.012806125, + "setup_secs": 0.221972042, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49974, + "published_at_window_end": 49974, + "processed_at_window_end": 49974, + "achieved_publish_msg_per_sec": 4991.008452188522, + "lag_at_window_end": 0, + "peak_lag": 1125, + "drain_secs": 5.42e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 126152, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11951.048324549798, + "dispatch_p50_ms": 325.930625, + "dispatch_p95_ms": 657.077583, + "dispatch_p99_ms": 1128.144792, + "e2e_p50_ms": 325.93075, + "e2e_p95_ms": 657.07775, + "e2e_p99_ms": 1128.144875, + "scaling_efficiency": 2.4306834696249044, + "peak_rss_mb": 25.234375, + "cpu_pct": 0.0062809427834485095, + "duration_secs": 10.555726709, + "setup_secs": 0.232992, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 126152, + "published_at_window_end": 126152, + "processed_at_window_end": 126152, + "achieved_publish_msg_per_sec": 11951.048324549798, + "lag_at_window_end": 0, + "peak_lag": 8000, + "drain_secs": 2.91e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 84701.02693134372, + "dispatch_p50_ms": 155.607166, + "dispatch_p95_ms": 219.795333, + "dispatch_p99_ms": 233.747583, + "e2e_p50_ms": 155.607291, + "e2e_p95_ms": 219.795416, + "e2e_p99_ms": 233.747625, + "scaling_efficiency": 4.053186942628598, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.472249292, + "setup_secs": 0.214548375 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 77515.23623495917, + "dispatch_p50_ms": 191.1385, + "dispatch_p95_ms": 261.163125, + "dispatch_p99_ms": 275.911458, + "e2e_p50_ms": 191.138666, + "e2e_p95_ms": 261.163167, + "e2e_p99_ms": 275.911625, + "scaling_efficiency": 4.184495943892209, + "peak_rss_mb": 0.53125, + "cpu_pct": 0.0, + "duration_secs": 0.516027583, + "setup_secs": 0.216345208 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 26561.941784192193, + "dispatch_p50_ms": 665.289584, + "dispatch_p95_ms": 1050.675584, + "dispatch_p99_ms": 1096.38475, + "e2e_p50_ms": 665.289625, + "e2e_p95_ms": 1050.675625, + "e2e_p99_ms": 1096.384792, + "scaling_efficiency": 2.616135667773857, + "peak_rss_mb": 0.515625, + "cpu_pct": 0.0, + "duration_secs": 1.505914, + "setup_secs": 0.218620417 + } + ], + "failures": [ + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 8, + "handler": "zero (no-op)", + "method": "drain", + "error": "45500 of 49152 messages were already consumed when the last worker was assigned; the window left is not a steady state. Raise --drain-messages so the group assembles within the first half of the corpus" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 8, + "handler": "zero (no-op)", + "method": "drain", + "error": "41350 of 49152 messages were already consumed when the last worker was assigned; the window left is not a steady state. Raise --drain-messages so the group assembles within the first half of the corpus" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 8, + "handler": "zero (no-op)", + "method": "drain", + "error": "46300 of 49152 messages were already consumed when the last worker was assigned; the window left is not a steady state. Raise --drain-messages so the group assembles within the first half of the corpus" + } + ], + "unsupported": [] + }, + { + "backend": "redis", + "broker": { + "name": "Redis Streams", + "version": "7.0", + "deployment": "docker single-node" + }, + "representative": true, + "results": [ + { + "flow": "publish_single", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 9723.216488630522, + "dispatch_p50_ms": 0.100084, + "dispatch_p95_ms": 0.142917, + "dispatch_p99_ms": 0.181917, + "e2e_p50_ms": 0.100084, + "e2e_p95_ms": 0.142917, + "e2e_p99_ms": 0.181917, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.21875, + "cpu_pct": 0.0, + "duration_secs": 0.514233125, + "setup_secs": 0.0 + }, + { + "flow": "publish_single", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 10185.09370795466, + "dispatch_p50_ms": 0.09225, + "dispatch_p95_ms": 0.135709, + "dispatch_p99_ms": 0.17825, + "e2e_p50_ms": 0.09225, + "e2e_p95_ms": 0.135709, + "e2e_p99_ms": 0.17825, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.984375, + "cpu_pct": 0.0, + "duration_secs": 0.4909135, + "setup_secs": 0.0 + }, + { + "flow": "publish_single", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 4884.80708980901, + "dispatch_p50_ms": 0.194625, + "dispatch_p95_ms": 0.24825, + "dispatch_p99_ms": 0.335375, + "e2e_p50_ms": 0.194625, + "e2e_p95_ms": 0.24825, + "e2e_p99_ms": 0.335375, + "scaling_efficiency": 1.0, + "peak_rss_mb": 127.125, + "cpu_pct": 0.0, + "duration_secs": 1.023581875, + "setup_secs": 0.0 + }, + { + "flow": "publish_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 9971.059001248876, + "dispatch_p50_ms": 100.422417, + "dispatch_p95_ms": 103.457917, + "dispatch_p99_ms": 103.457917, + "e2e_p50_ms": 100.422417, + "e2e_p95_ms": 103.457917, + "e2e_p99_ms": 103.457917, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 0.50145125, + "setup_secs": 0.0 + }, + { + "flow": "publish_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 9414.837265714717, + "dispatch_p50_ms": 107.307, + "dispatch_p95_ms": 107.719083, + "dispatch_p99_ms": 107.719083, + "e2e_p50_ms": 107.307, + "e2e_p95_ms": 107.719083, + "e2e_p99_ms": 107.719083, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.531076625, + "setup_secs": 0.0 + }, + { + "flow": "publish_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "no_handler", + "throughput_msg_per_sec": 5173.0697882994855, + "dispatch_p50_ms": 190.957125, + "dispatch_p95_ms": 202.320833, + "dispatch_p99_ms": 202.320833, + "e2e_p50_ms": 190.957125, + "e2e_p95_ms": 202.320833, + "e2e_p99_ms": 202.320833, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 0.966544084, + "setup_secs": 0.0 + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11460.587016468948, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.21875, + "cpu_pct": 0.0, + "duration_secs": 471.179704167, + "setup_secs": 0.00363875, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 90.11067975, + "producers": 8, + "unique_at_start": 4, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.342019232577, + "dispatch_p50_ms": 1.053708, + "dispatch_p95_ms": 2.299875, + "dispatch_p99_ms": 4.29475, + "e2e_p50_ms": 1.053833, + "e2e_p95_ms": 2.299917, + "e2e_p99_ms": 4.294791, + "scaling_efficiency": 1.0, + "peak_rss_mb": 1.078125, + "cpu_pct": 0.0, + "duration_secs": 10.000116, + "setup_secs": 0.001251125, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49984, + "achieved_publish_msg_per_sec": 4999.142009952684, + "lag_at_window_end": 8, + "peak_lag": 74, + "drain_secs": 0.011118541, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249982, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 9418.5229195659, + "dispatch_p50_ms": 7753.297125, + "dispatch_p95_ms": 13220.728125, + "dispatch_p99_ms": 13693.745458, + "e2e_p50_ms": 7753.297166, + "e2e_p95_ms": 13220.728208, + "e2e_p99_ms": 13693.7455, + "scaling_efficiency": 1.0, + "peak_rss_mb": 3.953125, + "cpu_pct": 0.0, + "duration_secs": 10.000612708, + "setup_secs": 0.001318875, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249982, + "published_at_window_end": 249982, + "processed_at_window_end": 94191, + "achieved_publish_msg_per_sec": 24996.668434127707, + "lag_at_window_end": 155791, + "peak_lag": 155797, + "drain_secs": 13.818432, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11132.813044172515, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 254.305986166, + "setup_secs": 0.002741791, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 53.416085333, + "producers": 8, + "unique_at_start": 15, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4995.543359667129, + "dispatch_p50_ms": 1.076166, + "dispatch_p95_ms": 2.230667, + "dispatch_p99_ms": 3.067334, + "e2e_p50_ms": 1.076208, + "e2e_p95_ms": 2.230708, + "e2e_p99_ms": 3.067417, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.000713917, + "setup_secs": 0.000996458, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49959, + "achieved_publish_msg_per_sec": 4998.843124091338, + "lag_at_window_end": 33, + "peak_lag": 40, + "drain_secs": 0.022120416, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 8917.264477401086, + "dispatch_p50_ms": 8120.435166, + "dispatch_p95_ms": 13711.768583, + "dispatch_p99_ms": 14193.630042, + "e2e_p50_ms": 8120.435208, + "e2e_p95_ms": 13711.768625, + "e2e_p99_ms": 14193.630125, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.078125, + "cpu_pct": 0.0, + "duration_secs": 10.00194625, + "setup_secs": 0.001293875, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249992, + "published_at_window_end": 249992, + "processed_at_window_end": 89190, + "achieved_publish_msg_per_sec": 24994.335477457702, + "lag_at_window_end": 160802, + "peak_lag": 160822, + "drain_secs": 14.322936541, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 7057.072628979898, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.078125, + "cpu_pct": 0.0, + "duration_secs": 6.268038084, + "setup_secs": 0.005920833, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.752153833, + "producers": 8, + "unique_at_start": 3, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.2481461186735, + "dispatch_p50_ms": 1.353542, + "dispatch_p95_ms": 2.602709, + "dispatch_p99_ms": 3.434083, + "e2e_p50_ms": 1.353625, + "e2e_p95_ms": 2.60275, + "e2e_p99_ms": 3.434125, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.001904375, + "setup_secs": 0.001773625, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.2481461186735, + "lag_at_window_end": 0, + "peak_lag": 40, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4948.96379041563, + "dispatch_p50_ms": 50.382708, + "dispatch_p95_ms": 96.053625, + "dispatch_p99_ms": 101.658167, + "e2e_p50_ms": 50.403583, + "e2e_p95_ms": 96.059292, + "e2e_p99_ms": 101.662542, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.65625, + "cpu_pct": 0.0, + "duration_secs": 10.002093791, + "setup_secs": 0.301880208, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4998.153491120367, + "lag_at_window_end": 492, + "peak_lag": 512, + "drain_secs": 0.201003292, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 110921, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 7660.00428135447, + "dispatch_p50_ms": 10.704333, + "dispatch_p95_ms": 19.926916, + "dispatch_p99_ms": 28.780125, + "e2e_p50_ms": 10.723791, + "e2e_p95_ms": 19.930083, + "e2e_p99_ms": 28.804042, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.0, + "duration_secs": 14.476362666, + "setup_secs": 0.2945375, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 110921, + "published_at_window_end": 110921, + "processed_at_window_end": 110889, + "achieved_publish_msg_per_sec": 7662.214781377044, + "lag_at_window_end": 32, + "peak_lag": 804, + "drain_secs": 0.307974334, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 99321.27332351418, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.265625, + "cpu_pct": 0.0, + "duration_secs": 28.499997083, + "setup_secs": 0.003064416, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 60.847094958, + "producers": 8, + "unique_at_start": 500, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4949.11790238417, + "dispatch_p50_ms": 50.909084, + "dispatch_p95_ms": 96.877167, + "dispatch_p99_ms": 104.85325, + "e2e_p50_ms": 50.929459, + "e2e_p95_ms": 96.885, + "e2e_p99_ms": 104.857875, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.0, + "duration_secs": 10.001782333, + "setup_secs": 0.340941333, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4998.309134868473, + "lag_at_window_end": 492, + "peak_lag": 500, + "drain_secs": 0.2109975, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24943.80759500055, + "dispatch_p50_ms": 10.601667, + "dispatch_p95_ms": 19.689042, + "dispatch_p99_ms": 21.123875, + "e2e_p50_ms": 10.61725, + "e2e_p95_ms": 19.692208, + "e2e_p99_ms": 21.125916, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.002482542, + "setup_secs": 0.290715583, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249992, + "published_at_window_end": 249992, + "processed_at_window_end": 249500, + "achieved_publish_msg_per_sec": 24992.99538392536, + "lag_at_window_end": 492, + "peak_lag": 563, + "drain_secs": 0.249648625, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 535075, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 52993.15163805856, + "dispatch_p50_ms": 79.284459, + "dispatch_p95_ms": 147.280792, + "dispatch_p99_ms": 156.220041, + "e2e_p50_ms": 79.299167, + "e2e_p95_ms": 147.293542, + "e2e_p99_ms": 156.228208, + "scaling_efficiency": 1.0, + "peak_rss_mb": 5.640625, + "cpu_pct": 0.0, + "duration_secs": 10.095644125, + "setup_secs": 0.271979291, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 535075, + "published_at_window_end": 535075, + "processed_at_window_end": 535000, + "achieved_publish_msg_per_sec": 53000.580584549876, + "lag_at_window_end": 75, + "peak_lag": 8075, + "drain_secs": 0.328403917, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 16746.95522878324, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 2.611638916, + "setup_secs": 0.030844334, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.773461458, + "producers": 8, + "unique_at_start": 500, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49986, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4949.748965066663, + "dispatch_p50_ms": 51.826458, + "dispatch_p95_ms": 97.294459, + "dispatch_p99_ms": 121.276583, + "e2e_p50_ms": 51.841334, + "e2e_p95_ms": 97.296959, + "e2e_p99_ms": 121.278875, + "scaling_efficiency": 1.0, + "peak_rss_mb": 36.65625, + "cpu_pct": 0.0, + "duration_secs": 10.000507167, + "setup_secs": 0.269913958, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49986, + "published_at_window_end": 49986, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4998.346500360045, + "lag_at_window_end": 486, + "peak_lag": 508, + "drain_secs": 0.162974625, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 133742, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 11365.764731153342, + "dispatch_p50_ms": 1061.83475, + "dispatch_p95_ms": 1549.517916, + "dispatch_p99_ms": 1695.234125, + "e2e_p50_ms": 1061.8455, + "e2e_p95_ms": 1549.530625, + "e2e_p99_ms": 1695.244375, + "scaling_efficiency": 1.0, + "peak_rss_mb": 166.21875, + "cpu_pct": 0.0, + "duration_secs": 10.470039, + "setup_secs": 0.260100375, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 133742, + "published_at_window_end": 133742, + "processed_at_window_end": 119000, + "achieved_publish_msg_per_sec": 12773.782409024456, + "lag_at_window_end": 14742, + "peak_lag": 21242, + "drain_secs": 1.218299, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 211195.80049064616, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 2.96875, + "cpu_pct": 0.0, + "duration_secs": 25.56679625, + "setup_secs": 0.004473833, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 89.909912542, + "producers": 8, + "unique_at_start": 400, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.327729332135, + "dispatch_p50_ms": 0.8205, + "dispatch_p95_ms": 1.692083, + "dispatch_p99_ms": 3.025042, + "e2e_p50_ms": 0.820625, + "e2e_p95_ms": 1.692167, + "e2e_p99_ms": 3.025083, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001745125, + "setup_secs": 0.002622583, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.327729332135, + "lag_at_window_end": 0, + "peak_lag": 24, + "drain_secs": 7.91e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249979, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24992.63405200524, + "dispatch_p50_ms": 0.482458, + "dispatch_p95_ms": 1.263042, + "dispatch_p99_ms": 1.69525, + "e2e_p50_ms": 0.4825, + "e2e_p95_ms": 1.263167, + "e2e_p99_ms": 1.695291, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.21875, + "cpu_pct": 0.0, + "duration_secs": 10.002107, + "setup_secs": 0.004209791, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249979, + "published_at_window_end": 249979, + "processed_at_window_end": 249979, + "achieved_publish_msg_per_sec": 24992.63405200524, + "lag_at_window_end": 0, + "peak_lag": 112, + "drain_secs": 8.3e-8, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 519047, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 51422.329257269535, + "dispatch_p50_ms": 76.480125, + "dispatch_p95_ms": 147.517333, + "dispatch_p99_ms": 154.754542, + "e2e_p50_ms": 76.480208, + "e2e_p95_ms": 147.517417, + "e2e_p99_ms": 154.754583, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.171875, + "cpu_pct": 0.0, + "duration_secs": 10.09378625, + "setup_secs": 0.001746542, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 519047, + "published_at_window_end": 519047, + "processed_at_window_end": 519046, + "achieved_publish_msg_per_sec": 51422.42832812117, + "lag_at_window_end": 1, + "peak_lag": 7291, + "drain_secs": 0.01119925, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 171979.11971691428, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 16.461044833, + "setup_secs": 0.003838709, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.448058208, + "producers": 8, + "unique_at_start": 200, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.356027584742, + "dispatch_p50_ms": 0.894, + "dispatch_p95_ms": 1.92875, + "dispatch_p99_ms": 3.564709, + "e2e_p50_ms": 0.894083, + "e2e_p95_ms": 1.928875, + "e2e_p99_ms": 3.56475, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.0016885, + "setup_secs": 0.002032542, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.356027584742, + "lag_at_window_end": 0, + "peak_lag": 39, + "drain_secs": 4.58e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249988, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24997.58643105177, + "dispatch_p50_ms": 0.50375, + "dispatch_p95_ms": 1.288125, + "dispatch_p99_ms": 1.847625, + "e2e_p50_ms": 0.503833, + "e2e_p95_ms": 1.288292, + "e2e_p99_ms": 1.847708, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.000325459, + "setup_secs": 0.004158083, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249988, + "published_at_window_end": 249988, + "processed_at_window_end": 249984, + "achieved_publish_msg_per_sec": 24997.986418033834, + "lag_at_window_end": 4, + "peak_lag": 93, + "drain_secs": 0.012431416, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 488907, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 48144.65365816152, + "dispatch_p50_ms": 81.898334, + "dispatch_p95_ms": 157.639792, + "dispatch_p99_ms": 166.029625, + "e2e_p50_ms": 81.898459, + "e2e_p95_ms": 157.639875, + "e2e_p99_ms": 166.02975, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.09375, + "cpu_pct": 0.0, + "duration_secs": 10.154959333, + "setup_secs": 0.00158575, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 488907, + "published_at_window_end": 488907, + "processed_at_window_end": 488907, + "achieved_publish_msg_per_sec": 48144.65365816152, + "lag_at_window_end": 0, + "peak_lag": 7537, + "drain_secs": 2.92e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 14276.233074999916, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 3.098296292, + "setup_secs": 0.007075541, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.6904042500000003, + "producers": 8, + "unique_at_start": 5, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.288062343026, + "dispatch_p50_ms": 1.212792, + "dispatch_p95_ms": 2.569541, + "dispatch_p99_ms": 4.265625, + "e2e_p50_ms": 1.212875, + "e2e_p95_ms": 2.569583, + "e2e_p99_ms": 4.265666, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.0018245, + "setup_secs": 0.004020458, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.288062343026, + "lag_at_window_end": 0, + "peak_lag": 19, + "drain_secs": 2.92e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 139091, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11273.9482678498, + "dispatch_p50_ms": 1148.418167, + "dispatch_p95_ms": 2023.502166, + "dispatch_p99_ms": 2121.007458, + "e2e_p50_ms": 1148.41825, + "e2e_p95_ms": 2023.502291, + "e2e_p99_ms": 2121.0075, + "scaling_efficiency": 1.0, + "peak_rss_mb": 12.03125, + "cpu_pct": 0.0, + "duration_secs": 10.417911916, + "setup_secs": 0.00394025, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 139091, + "published_at_window_end": 139091, + "processed_at_window_end": 117451, + "achieved_publish_msg_per_sec": 13351.13995218003, + "lag_at_window_end": 21640, + "peak_lag": 27537, + "drain_secs": 1.485132375, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 8077.523756385088, + "dispatch_p50_ms": 62.046084, + "dispatch_p95_ms": 118.028875, + "dispatch_p99_ms": 126.27175, + "e2e_p50_ms": 62.046125, + "e2e_p95_ms": 118.028916, + "e2e_p99_ms": 126.271875, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.619001584, + "setup_secs": 0.002206333 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 8260.238824155003, + "dispatch_p50_ms": 59.625709, + "dispatch_p95_ms": 115.682833, + "dispatch_p99_ms": 122.117542, + "e2e_p50_ms": 59.62575, + "e2e_p95_ms": 115.682875, + "e2e_p99_ms": 122.117583, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.605309375, + "setup_secs": 0.000825958 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4534.321068311944, + "dispatch_p50_ms": 108.698209, + "dispatch_p95_ms": 207.410083, + "dispatch_p99_ms": 215.742666, + "e2e_p50_ms": 108.69825, + "e2e_p95_ms": 207.41025, + "e2e_p99_ms": 215.74275, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.102700917, + "setup_secs": 0.000849792 + }, + { + "flow": "dlq_drain", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 9873.97273927648, + "dispatch_p50_ms": 257.797709, + "dispatch_p95_ms": 474.659042, + "dispatch_p99_ms": 493.739542, + "e2e_p50_ms": 257.79775, + "e2e_p95_ms": 474.659125, + "e2e_p99_ms": 493.739584, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0, + "duration_secs": 0.506381791, + "setup_secs": null + }, + { + "flow": "dlq_drain", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 9274.88343590832, + "dispatch_p50_ms": 278.295125, + "dispatch_p95_ms": 507.833875, + "dispatch_p99_ms": 527.556917, + "e2e_p50_ms": 278.295167, + "e2e_p95_ms": 507.833917, + "e2e_p99_ms": 527.557, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.539090333, + "setup_secs": null + }, + { + "flow": "dlq_drain", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 1, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 5681.926874496597, + "dispatch_p50_ms": 469.122292, + "dispatch_p95_ms": 832.331125, + "dispatch_p99_ms": 862.795459, + "e2e_p50_ms": 469.122334, + "e2e_p95_ms": 832.331209, + "e2e_p99_ms": 862.7955, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.879983166, + "setup_secs": null + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 19717.843714720057, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.7204916019035823, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.0, + "duration_secs": 273.86331275, + "setup_secs": 0.001628375, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 88.875370542, + "producers": 8, + "unique_at_start": 6, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.195983103356, + "dispatch_p50_ms": 1.030666, + "dispatch_p95_ms": 2.364375, + "dispatch_p99_ms": 2.8985, + "e2e_p50_ms": 1.030708, + "e2e_p95_ms": 2.364458, + "e2e_p99_ms": 2.898625, + "scaling_efficiency": 0.9999707830859397, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.001408542, + "setup_secs": 0.002046041, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49989, + "achieved_publish_msg_per_sec": 4998.495940853048, + "lag_at_window_end": 3, + "peak_lag": 27, + "drain_secs": 0.0124095, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249989, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 17213.42056937987, + "dispatch_p50_ms": 2249.742958, + "dispatch_p95_ms": 3819.881917, + "dispatch_p99_ms": 3920.721708, + "e2e_p50_ms": 2249.743042, + "e2e_p95_ms": 3819.881958, + "e2e_p99_ms": 3920.721792, + "scaling_efficiency": 1.8276135989031745, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.000162333, + "setup_secs": 0.002073166, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249989, + "published_at_window_end": 249989, + "processed_at_window_end": 172137, + "achieved_publish_msg_per_sec": 24998.49419194423, + "lag_at_window_end": 77852, + "peak_lag": 77853, + "drain_secs": 3.949931084, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 19289.288017459996, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.7326517512621842, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 146.773172625, + "setup_secs": 0.002827584, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.228538667, + "producers": 8, + "unique_at_start": 6, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49987, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.188539365318, + "dispatch_p50_ms": 1.03825, + "dispatch_p95_ms": 2.348917, + "dispatch_p99_ms": 3.024792, + "e2e_p50_ms": 1.038333, + "e2e_p95_ms": 2.348959, + "e2e_p99_ms": 3.024959, + "scaling_efficiency": 1.000529507904895, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.001023292, + "setup_secs": 0.002039708, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49987, + "published_at_window_end": 49987, + "processed_at_window_end": 49987, + "achieved_publish_msg_per_sec": 4998.188539365318, + "lag_at_window_end": 0, + "peak_lag": 16, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249975, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 16037.02777371997, + "dispatch_p50_ms": 2804.998709, + "dispatch_p95_ms": 4467.811458, + "dispatch_p99_ms": 4573.546833, + "e2e_p50_ms": 2804.99875, + "e2e_p95_ms": 4467.811583, + "e2e_p99_ms": 4573.546916, + "scaling_efficiency": 1.798424596955985, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001105084, + "setup_secs": 0.002290166, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249975, + "published_at_window_end": 249975, + "processed_at_window_end": 160388, + "achieved_publish_msg_per_sec": 24994.7378715094, + "lag_at_window_end": 89587, + "peak_lag": 89609, + "drain_secs": 4.610175875, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 10715.16669081916, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.5183585679446296, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 4.127420625, + "setup_secs": 0.009694792, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.760231875, + "producers": 8, + "unique_at_start": 11, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.375414009251, + "dispatch_p50_ms": 1.226458, + "dispatch_p95_ms": 2.169958, + "dispatch_p99_ms": 2.642042, + "e2e_p50_ms": 1.2265, + "e2e_p95_ms": 2.170041, + "e2e_p99_ms": 2.642084, + "scaling_efficiency": 1.0000254624994311, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001649708, + "setup_secs": 0.00356125, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.375414009251, + "lag_at_window_end": 0, + "peak_lag": 19, + "drain_secs": 2.08e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 143230, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 6803.456365956803, + "dispatch_p50_ms": 5782.222625, + "dispatch_p95_ms": 17901.673583, + "dispatch_p99_ms": 18118.056, + "e2e_p50_ms": 5782.222667, + "e2e_p95_ms": 17901.673625, + "e2e_p99_ms": 18118.056041, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.376784417, + "setup_secs": 0.002760958, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 143230, + "published_at_window_end": 143230, + "processed_at_window_end": 70598, + "achieved_publish_msg_per_sec": 13802.927211762271, + "lag_at_window_end": 72632, + "peak_lag": 74965, + "drain_secs": 17.592653708, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 310848.51529098884, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.5625, + "cpu_pct": 0.0, + "duration_secs": 17.366980167, + "setup_secs": 0.005572458, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 89.887577792, + "producers": 8, + "unique_at_start": 1500, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4949.967639586556, + "dispatch_p50_ms": 98.702541, + "dispatch_p95_ms": 191.2715, + "dispatch_p99_ms": 211.232291, + "e2e_p50_ms": 98.737917, + "e2e_p95_ms": 191.286334, + "e2e_p99_ms": 211.243208, + "scaling_efficiency": 1.0002028402739318, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.0, + "duration_secs": 10.000065375, + "setup_secs": 0.362576584, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4999.167317943658, + "lag_at_window_end": 492, + "peak_lag": 944, + "drain_secs": 0.315620917, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249962, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24946.603208140674, + "dispatch_p50_ms": 20.092791, + "dispatch_p95_ms": 38.345041, + "dispatch_p99_ms": 42.010209, + "e2e_p50_ms": 20.106208, + "e2e_p95_ms": 38.349667, + "e2e_p99_ms": 42.013917, + "scaling_efficiency": 3.2567348909796596, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.001361625, + "setup_secs": 0.279305792, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249962, + "published_at_window_end": 249962, + "processed_at_window_end": 249500, + "achieved_publish_msg_per_sec": 24992.796918289616, + "lag_at_window_end": 462, + "peak_lag": 985, + "drain_secs": 0.257687625, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 519114, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 51169.221856070806, + "dispatch_p50_ms": 86.61125, + "dispatch_p95_ms": 157.489333, + "dispatch_p99_ms": 168.992458, + "e2e_p50_ms": 86.617625, + "e2e_p95_ms": 157.4985, + "e2e_p99_ms": 169.00225, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.133044459, + "setup_secs": 0.263857792, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 519114, + "published_at_window_end": 519114, + "processed_at_window_end": 518500, + "achieved_publish_msg_per_sec": 51229.81568870268, + "lag_at_window_end": 614, + "peak_lag": 8114, + "drain_secs": 0.294808916, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 399745.94212632626, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 4.0247766540835, + "peak_rss_mb": 0.078125, + "cpu_pct": 0.0, + "duration_secs": 7.078635958, + "setup_secs": 0.00669375, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.621602625, + "producers": 8, + "unique_at_start": 1500, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4949.949057104284, + "dispatch_p50_ms": 100.98525, + "dispatch_p95_ms": 193.634542, + "dispatch_p99_ms": 215.752041, + "e2e_p50_ms": 101.026875, + "e2e_p95_ms": 193.645625, + "e2e_p99_ms": 215.758375, + "scaling_efficiency": 1.000167939971629, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.000102916, + "setup_secs": 0.355801458, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4999.148550762775, + "lag_at_window_end": 492, + "peak_lag": 968, + "drain_secs": 0.2919245, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249980, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24946.506865376177, + "dispatch_p50_ms": 19.817708, + "dispatch_p95_ms": 38.363625, + "dispatch_p99_ms": 42.616792, + "e2e_p50_ms": 19.833208, + "e2e_p95_ms": 38.366625, + "e2e_p99_ms": 42.618167, + "scaling_efficiency": 1.000108214047328, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.00140025, + "setup_secs": 0.294051666, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249980, + "published_at_window_end": 249980, + "processed_at_window_end": 249500, + "achieved_publish_msg_per_sec": 24994.50014511718, + "lag_at_window_end": 480, + "peak_lag": 958, + "drain_secs": 0.269800084, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 477046, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 47325.82343363474, + "dispatch_p50_ms": 92.896, + "dispatch_p95_ms": 171.020584, + "dispatch_p99_ms": 182.476417, + "e2e_p50_ms": 92.908292, + "e2e_p95_ms": 171.033084, + "e2e_p99_ms": 182.480083, + "scaling_efficiency": 0.8930554603898352, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.068498875, + "setup_secs": 0.326071542, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 477046, + "published_at_window_end": 477046, + "processed_at_window_end": 476500, + "achieved_publish_msg_per_sec": 47380.05197423236, + "lag_at_window_end": 546, + "peak_lag": 8546, + "drain_secs": 0.259973583, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 21142.783832914523, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.262485242486115, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.0, + "duration_secs": 2.045000334, + "setup_secs": 0.082022208, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.829620959, + "producers": 8, + "unique_at_start": 1000, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4949.396503751289, + "dispatch_p50_ms": 101.5155, + "dispatch_p95_ms": 191.47425, + "dispatch_p99_ms": 204.697375, + "e2e_p50_ms": 101.537792, + "e2e_p95_ms": 191.479291, + "e2e_p99_ms": 204.700125, + "scaling_efficiency": 0.9999287920826164, + "peak_rss_mb": 56.8125, + "cpu_pct": 0.0, + "duration_secs": 10.001219333, + "setup_secs": 0.259061083, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49500, + "achieved_publish_msg_per_sec": 4998.590505364332, + "lag_at_window_end": 492, + "peak_lag": 972, + "drain_secs": 0.246429042, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 142513, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 13612.498244094373, + "dispatch_p50_ms": 308.312709, + "dispatch_p95_ms": 594.589584, + "dispatch_p99_ms": 648.637458, + "e2e_p50_ms": 308.3235, + "e2e_p95_ms": 594.596209, + "e2e_p99_ms": 648.6405, + "scaling_efficiency": 1.197675525236131, + "peak_rss_mb": 49.921875, + "cpu_pct": 0.0, + "duration_secs": 10.431589959, + "setup_secs": 0.269010167, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 142513, + "published_at_window_end": 142513, + "processed_at_window_end": 142000, + "achieved_publish_msg_per_sec": 13661.675790567757, + "lag_at_window_end": 513, + "peak_lag": 8013, + "drain_secs": 0.296171416, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 323377.19713996747, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.5311724778082878, + "peak_rss_mb": 6.515625, + "cpu_pct": 0.0, + "duration_secs": 16.698533625, + "setup_secs": 0.002504875, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 89.471795833, + "producers": 8, + "unique_at_start": 75, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.38232713106, + "dispatch_p50_ms": 0.83475, + "dispatch_p95_ms": 1.768916, + "dispatch_p99_ms": 2.78375, + "e2e_p50_ms": 0.834792, + "e2e_p95_ms": 1.769041, + "e2e_p99_ms": 2.783792, + "scaling_efficiency": 1.0000109232130987, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001635875, + "setup_secs": 0.003308042, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.38232713106, + "lag_at_window_end": 0, + "peak_lag": 16, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249988, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24994.74616460643, + "dispatch_p50_ms": 0.39575, + "dispatch_p95_ms": 1.12725, + "dispatch_p99_ms": 1.677292, + "e2e_p50_ms": 0.395834, + "e2e_p95_ms": 1.127417, + "e2e_p99_ms": 1.677375, + "scaling_efficiency": 1.0000845094037225, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001621875, + "setup_secs": 0.006479125, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249988, + "published_at_window_end": 249988, + "processed_at_window_end": 249988, + "achieved_publish_msg_per_sec": 24994.74616460643, + "lag_at_window_end": 0, + "peak_lag": 47, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 436341, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 43216.67981343499, + "dispatch_p50_ms": 91.211708, + "dispatch_p95_ms": 175.366416, + "dispatch_p99_ms": 183.17675, + "e2e_p50_ms": 91.211833, + "e2e_p95_ms": 175.366459, + "e2e_p99_ms": 183.176833, + "scaling_efficiency": 0.8404263369171571, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0, + "duration_secs": 10.09658775, + "setup_secs": 0.002190708, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 436341, + "published_at_window_end": 436341, + "processed_at_window_end": 436341, + "achieved_publish_msg_per_sec": 43216.67981343499, + "lag_at_window_end": 0, + "peak_lag": 7317, + "drain_secs": 1.25e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 277696.0688858723, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.614708049110689, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.192488541, + "setup_secs": 0.006102042, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.662037292, + "producers": 8, + "unique_at_start": 742, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.4495038004925, + "dispatch_p50_ms": 0.855042, + "dispatch_p95_ms": 2.003375, + "dispatch_p99_ms": 3.682958, + "e2e_p50_ms": 0.855166, + "e2e_p95_ms": 2.003459, + "e2e_p99_ms": 3.683083, + "scaling_efficiency": 1.0000187013920645, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001501458, + "setup_secs": 0.003917042, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.4495038004925, + "lag_at_window_end": 0, + "peak_lag": 42, + "drain_secs": 6.67e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249984, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24994.86978707845, + "dispatch_p50_ms": 0.409292, + "dispatch_p95_ms": 1.108791, + "dispatch_p99_ms": 1.526875, + "e2e_p50_ms": 0.409375, + "e2e_p95_ms": 1.108875, + "e2e_p99_ms": 1.526958, + "scaling_efficiency": 0.9998913237491621, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001412375, + "setup_secs": 0.005196958, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249984, + "published_at_window_end": 249984, + "processed_at_window_end": 249984, + "achieved_publish_msg_per_sec": 24994.86978707845, + "lag_at_window_end": 0, + "peak_lag": 58, + "drain_secs": 2.08e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 414205, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 40696.944778167315, + "dispatch_p50_ms": 96.66425, + "dispatch_p95_ms": 186.10675, + "dispatch_p99_ms": 195.690375, + "e2e_p50_ms": 96.664375, + "e2e_p95_ms": 186.106792, + "e2e_p99_ms": 195.690458, + "scaling_efficiency": 0.8453055881786021, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.177791042, + "setup_secs": 0.002297417, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 414205, + "published_at_window_end": 414205, + "processed_at_window_end": 414205, + "achieved_publish_msg_per_sec": 40696.944778167315, + "lag_at_window_end": 0, + "peak_lag": 7412, + "drain_secs": 2.91e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 23631.277057968524, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.65528798344928, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.8635048749999998, + "setup_secs": 0.015030708, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.756105167, + "producers": 8, + "unique_at_start": 200, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49990, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.307005226784, + "dispatch_p50_ms": 1.0855, + "dispatch_p95_ms": 2.130375, + "dispatch_p99_ms": 3.270875, + "e2e_p50_ms": 1.085583, + "e2e_p95_ms": 2.1305, + "e2e_p99_ms": 3.270959, + "scaling_efficiency": 1.0000037898743575, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001386459, + "setup_secs": 0.003665875, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49990, + "published_at_window_end": 49990, + "processed_at_window_end": 49990, + "achieved_publish_msg_per_sec": 4998.307005226784, + "lag_at_window_end": 0, + "peak_lag": 30, + "drain_secs": 3.33e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 133009, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 12650.856350821867, + "dispatch_p50_ms": 289.466667, + "dispatch_p95_ms": 601.823917, + "dispatch_p99_ms": 653.18875, + "e2e_p50_ms": 289.466792, + "e2e_p95_ms": 601.823959, + "e2e_p99_ms": 653.188917, + "scaling_efficiency": 1.1221318432778895, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.513754667, + "setup_secs": 0.004047916, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 133009, + "published_at_window_end": 133009, + "processed_at_window_end": 133008, + "achieved_publish_msg_per_sec": 12650.951464321437, + "lag_at_window_end": 1, + "peak_lag": 5661, + "drain_secs": 0.011472708, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 14804.865396939724, + "dispatch_p50_ms": 67.503042, + "dispatch_p95_ms": 128.630041, + "dispatch_p99_ms": 137.57725, + "e2e_p50_ms": 67.503084, + "e2e_p95_ms": 128.630083, + "e2e_p99_ms": 137.577375, + "scaling_efficiency": 1.8328470263224956, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.675453625, + "setup_secs": 0.001869458 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "setup_bound", + "throughput_msg_per_sec": 15416.894020245156, + "dispatch_p50_ms": 64.675666, + "dispatch_p95_ms": 123.118334, + "dispatch_p99_ms": 129.376083, + "e2e_p50_ms": 64.675708, + "e2e_p95_ms": 123.118375, + "e2e_p99_ms": 129.376167, + "scaling_efficiency": 1.8663980967671665, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 0.648639083, + "setup_secs": 0.001497375 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 2, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 7198.967520622688, + "dispatch_p50_ms": 137.509542, + "dispatch_p95_ms": 260.363417, + "dispatch_p99_ms": 280.861041, + "e2e_p50_ms": 137.509584, + "e2e_p95_ms": 260.363459, + "e2e_p99_ms": 280.861083, + "scaling_efficiency": 1.5876616172887708, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.389088084, + "setup_secs": 0.001504916 + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 33331.45669905881, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.908355100062611, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 162.007680875, + "setup_secs": 0.003851292, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 89.347759542, + "producers": 8, + "unique_at_start": 48, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.703920911677, + "dispatch_p50_ms": 0.857791, + "dispatch_p95_ms": 2.31625, + "dispatch_p99_ms": 2.915166, + "e2e_p50_ms": 0.857875, + "e2e_p95_ms": 2.316292, + "e2e_p99_ms": 2.915333, + "scaling_efficiency": 1.0000724043448224, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.000192208, + "setup_secs": 0.00330275, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49988, + "achieved_publish_msg_per_sec": 4999.103913223505, + "lag_at_window_end": 4, + "peak_lag": 44, + "drain_secs": 0.011285709, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249977, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24991.77299360285, + "dispatch_p50_ms": 1.824459, + "dispatch_p95_ms": 153.444625, + "dispatch_p99_ms": 174.182417, + "e2e_p50_ms": 1.8245, + "e2e_p95_ms": 153.444708, + "e2e_p99_ms": 174.182542, + "scaling_efficiency": 2.6534705289812814, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.002371583, + "setup_secs": 0.005831208, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249977, + "published_at_window_end": 249977, + "processed_at_window_end": 249977, + "achieved_publish_msg_per_sec": 24991.77299360285, + "lag_at_window_end": 0, + "peak_lag": 4563, + "drain_secs": 1.25e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 488052, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 26163.418061904984, + "dispatch_p50_ms": 4295.469792, + "dispatch_p95_ms": 6554.837459, + "dispatch_p99_ms": 6759.312834, + "e2e_p50_ms": 4295.469875, + "e2e_p95_ms": 6554.8375, + "e2e_p99_ms": 6759.312875, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.0, + "duration_secs": 10.170842333, + "setup_secs": 0.00285125, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 488052, + "published_at_window_end": 488052, + "processed_at_window_end": 266104, + "achieved_publish_msg_per_sec": 47985.4061267356, + "lag_at_window_end": 221948, + "peak_lag": 226050, + "drain_secs": 6.689298208, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 31929.895724312126, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.868088738903764, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 88.66608975, + "setup_secs": 0.0044335, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.913569166, + "producers": 8, + "unique_at_start": 57, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.600126496439, + "dispatch_p50_ms": 0.881833, + "dispatch_p95_ms": 2.476292, + "dispatch_p99_ms": 4.026125, + "e2e_p50_ms": 0.881958, + "e2e_p95_ms": 2.476417, + "e2e_p99_ms": 4.026292, + "scaling_efficiency": 1.000611898768408, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001200083, + "setup_secs": 0.003031083, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.600126496439, + "lag_at_window_end": 0, + "peak_lag": 51, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249986, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24992.983982651174, + "dispatch_p50_ms": 2.303459, + "dispatch_p95_ms": 11.165708, + "dispatch_p99_ms": 18.741084, + "e2e_p50_ms": 2.303541, + "e2e_p95_ms": 11.16575, + "e2e_p99_ms": 18.741125, + "scaling_efficiency": 2.8027635656641774, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.000926667, + "setup_secs": 0.004510583, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249986, + "published_at_window_end": 249986, + "processed_at_window_end": 249953, + "achieved_publish_msg_per_sec": 24996.2836768794, + "lag_at_window_end": 33, + "peak_lag": 455, + "drain_secs": 0.011656583, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 444016, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24575.499733110802, + "dispatch_p50_ms": 4115.454333, + "dispatch_p95_ms": 5927.411875, + "dispatch_p99_ms": 6094.547917, + "e2e_p50_ms": 4115.454375, + "e2e_p95_ms": 5927.411959, + "e2e_p99_ms": 6094.548042, + "scaling_efficiency": 1.0, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.07206375, + "setup_secs": 0.002911833, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 444016, + "published_at_window_end": 444016, + "processed_at_window_end": 247526, + "achieved_publish_msg_per_sec": 44083.9147786371, + "lag_at_window_end": 196490, + "peak_lag": 200894, + "drain_secs": 6.006095833, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 17256.88000318454, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.4453312174114648, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 2.5564296669999997, + "setup_secs": 0.020806833, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.765067, + "producers": 8, + "unique_at_start": 121, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49989, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.5117610928555, + "dispatch_p50_ms": 1.021166, + "dispatch_p95_ms": 2.417083, + "dispatch_p99_ms": 4.2475, + "e2e_p50_ms": 1.021208, + "e2e_p95_ms": 2.417125, + "e2e_p99_ms": 4.247542, + "scaling_efficiency": 1.0000527414739075, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.000776709, + "setup_secs": 0.005609125, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49989, + "published_at_window_end": 49989, + "processed_at_window_end": 49989, + "achieved_publish_msg_per_sec": 4998.5117610928555, + "lag_at_window_end": 0, + "peak_lag": 47, + "drain_secs": 4.16e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 119516, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 11449.5120311904, + "dispatch_p50_ms": 334.282791, + "dispatch_p95_ms": 659.972208, + "dispatch_p99_ms": 707.586458, + "e2e_p50_ms": 334.282833, + "e2e_p95_ms": 659.97225, + "e2e_p99_ms": 707.5865, + "scaling_efficiency": 1.6828963713916902, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.438436125, + "setup_secs": 0.005889708, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 119516, + "published_at_window_end": 119516, + "processed_at_window_end": 119515, + "achieved_publish_msg_per_sec": 11449.607830981482, + "lag_at_window_end": 1, + "peak_lag": 5971, + "drain_secs": 0.012149708, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 846124.77813795, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.7219842994774575, + "peak_rss_mb": 0.84375, + "cpu_pct": 0.0, + "duration_secs": 6.371991625, + "setup_secs": 0.013562542, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 89.347980208, + "producers": 8, + "unique_at_start": 8500, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4960.843660044317, + "dispatch_p50_ms": 128.40125, + "dispatch_p95_ms": 242.538791, + "dispatch_p99_ms": 251.674958, + "e2e_p50_ms": 128.438667, + "e2e_p95_ms": 242.545625, + "e2e_p99_ms": 251.689875, + "scaling_efficiency": 1.0024004761666865, + "peak_rss_mb": 0.15625, + "cpu_pct": 0.0, + "duration_secs": 10.001323041, + "setup_secs": 0.284352708, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49615, + "achieved_publish_msg_per_sec": 4998.538672839575, + "lag_at_window_end": 377, + "peak_lag": 1235, + "drain_secs": 0.19688025, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249984, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24897.48255329533, + "dispatch_p50_ms": 40.185959, + "dispatch_p95_ms": 76.850083, + "dispatch_p99_ms": 84.010209, + "e2e_p50_ms": 40.20175, + "e2e_p95_ms": 76.853458, + "e2e_p99_ms": 84.011625, + "scaling_efficiency": 3.250322276437797, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.001011125, + "setup_secs": 0.300558875, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249984, + "published_at_window_end": 249984, + "processed_at_window_end": 249000, + "achieved_publish_msg_per_sec": 24995.872604831246, + "lag_at_window_end": 984, + "peak_lag": 1704, + "drain_secs": 0.320427458, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 430362, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 42589.13691924115, + "dispatch_p50_ms": 117.012417, + "dispatch_p95_ms": 204.848083, + "dispatch_p99_ms": 232.775417, + "e2e_p50_ms": 117.019542, + "e2e_p95_ms": 204.861709, + "e2e_p99_ms": 232.787208, + "scaling_efficiency": 0.8323194173058995, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.0, + "duration_secs": 10.08473125, + "setup_secs": 0.280018791, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 430362, + "published_at_window_end": 430362, + "processed_at_window_end": 429500, + "achieved_publish_msg_per_sec": 42674.61267249932, + "lag_at_window_end": 862, + "peak_lag": 8862, + "drain_secs": 0.250770333, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 595711.2003118515, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 5.997820812984056, + "peak_rss_mb": 0.96875, + "cpu_pct": 0.0, + "duration_secs": 4.74585, + "setup_secs": 0.011529875, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.522271917, + "producers": 8, + "unique_at_start": 4000, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4967.42530915985, + "dispatch_p50_ms": 128.413625, + "dispatch_p95_ms": 244.0965, + "dispatch_p99_ms": 253.549125, + "e2e_p50_ms": 128.460333, + "e2e_p95_ms": 244.103916, + "e2e_p99_ms": 253.568375, + "scaling_efficiency": 1.003699125205092, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.001559542, + "setup_secs": 0.323046667, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49682, + "achieved_publish_msg_per_sec": 4998.420475333505, + "lag_at_window_end": 310, + "peak_lag": 1288, + "drain_secs": 0.2744525, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249969, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24848.185978061218, + "dispatch_p50_ms": 40.227208, + "dispatch_p95_ms": 76.807666, + "dispatch_p99_ms": 83.983791, + "e2e_p50_ms": 40.241458, + "e2e_p95_ms": 76.81025, + "e2e_p99_ms": 83.986375, + "scaling_efficiency": 0.9961665188213487, + "peak_rss_mb": 0.046875, + "cpu_pct": 0.0, + "duration_secs": 10.000730042, + "setup_secs": 0.296730167, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249969, + "published_at_window_end": 249969, + "processed_at_window_end": 248500, + "achieved_publish_msg_per_sec": 24995.075254527103, + "lag_at_window_end": 1469, + "peak_lag": 1806, + "drain_secs": 0.235106666, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 416715, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 40969.46289408484, + "dispatch_p50_ms": 119.657084, + "dispatch_p95_ms": 212.861083, + "dispatch_p99_ms": 231.019042, + "e2e_p50_ms": 119.668667, + "e2e_p95_ms": 212.874166, + "e2e_p99_ms": 231.023292, + "scaling_efficiency": 0.7731086306001367, + "peak_rss_mb": 2.21875, + "cpu_pct": 0.0, + "duration_secs": 10.153904167, + "setup_secs": 0.260006458, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 416715, + "published_at_window_end": 416715, + "processed_at_window_end": 416000, + "achieved_publish_msg_per_sec": 41039.87915843405, + "lag_at_window_end": 715, + "peak_lag": 7215, + "drain_secs": 0.273279125, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 29865.215159370237, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.7833220875900144, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.4142540000000001, + "setup_secs": 0.072730625, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.717324833, + "producers": 8, + "unique_at_start": 2000, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49984, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4934.725413382903, + "dispatch_p50_ms": 128.899708, + "dispatch_p95_ms": 241.488208, + "dispatch_p99_ms": 251.464666, + "e2e_p50_ms": 128.924042, + "e2e_p95_ms": 241.49425, + "e2e_p99_ms": 251.467333, + "scaling_efficiency": 0.9969647851255103, + "peak_rss_mb": 44.46875, + "cpu_pct": 0.0, + "duration_secs": 10.000759083, + "setup_secs": 0.267486792, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49984, + "published_at_window_end": 49984, + "processed_at_window_end": 49351, + "achieved_publish_msg_per_sec": 4998.020608752225, + "lag_at_window_end": 633, + "peak_lag": 1279, + "drain_secs": 0.140365417, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 125703, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 11949.95311450351, + "dispatch_p50_ms": 386.1225, + "dispatch_p95_ms": 742.868459, + "dispatch_p99_ms": 821.389708, + "e2e_p50_ms": 386.137917, + "e2e_p95_ms": 742.891042, + "e2e_p99_ms": 821.423708, + "scaling_efficiency": 1.0513989508993549, + "peak_rss_mb": 98.8125, + "cpu_pct": 0.0, + "duration_secs": 10.37660975, + "setup_secs": 0.259521125, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 125703, + "published_at_window_end": 125703, + "processed_at_window_end": 124000, + "achieved_publish_msg_per_sec": 12114.072228648669, + "lag_at_window_end": 1703, + "peak_lag": 7703, + "drain_secs": 0.153322083, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 385528.51594716404, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.825455407027561, + "peak_rss_mb": 0.125, + "cpu_pct": 0.0, + "duration_secs": 14.001654292, + "setup_secs": 0.008018958, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 89.268944209, + "producers": 8, + "unique_at_start": 1963, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.271904378498, + "dispatch_p50_ms": 0.8295, + "dispatch_p95_ms": 1.939, + "dispatch_p99_ms": 3.563625, + "e2e_p50_ms": 0.829625, + "e2e_p95_ms": 1.939083, + "e2e_p99_ms": 3.563708, + "scaling_efficiency": 0.999988831273846, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001856833, + "setup_secs": 0.004514417, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.271904378498, + "lag_at_window_end": 0, + "peak_lag": 32, + "drain_secs": 7.09e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249977, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24993.88197707878, + "dispatch_p50_ms": 0.421333, + "dispatch_p95_ms": 1.244542, + "dispatch_p99_ms": 6.280542, + "e2e_p50_ms": 0.421417, + "e2e_p95_ms": 1.244667, + "e2e_p99_ms": 6.280667, + "scaling_efficiency": 1.0000499317147182, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.001527583, + "setup_secs": 0.009350667, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249977, + "published_at_window_end": 249977, + "processed_at_window_end": 249977, + "achieved_publish_msg_per_sec": 24993.88197707878, + "lag_at_window_end": 0, + "peak_lag": 457, + "drain_secs": 1.67e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 359932, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 35432.4995901381, + "dispatch_p50_ms": 110.924167, + "dispatch_p95_ms": 213.982625, + "dispatch_p99_ms": 223.842, + "e2e_p50_ms": 110.924209, + "e2e_p95_ms": 213.982666, + "e2e_p99_ms": 223.842084, + "scaling_efficiency": 0.6890489035000108, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.158244667, + "setup_secs": 0.003316375, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 359932, + "published_at_window_end": 359932, + "processed_at_window_end": 359932, + "achieved_publish_msg_per_sec": 35432.4995901381, + "lag_at_window_end": 0, + "peak_lag": 7600, + "drain_secs": 1.67e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 325053.12451347464, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.890073196377138, + "peak_rss_mb": 1.890625, + "cpu_pct": 0.0, + "duration_secs": 8.70490325, + "setup_secs": 0.008338834, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.592428167, + "producers": 8, + "unique_at_start": 1600, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49984, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.221604973942, + "dispatch_p50_ms": 0.830459, + "dispatch_p95_ms": 1.988375, + "dispatch_p99_ms": 3.82875, + "e2e_p50_ms": 0.830583, + "e2e_p95_ms": 1.988459, + "e2e_p99_ms": 3.828792, + "scaling_efficiency": 0.99997310663545, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.000356917, + "setup_secs": 0.004172291, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49984, + "published_at_window_end": 49984, + "processed_at_window_end": 49984, + "achieved_publish_msg_per_sec": 4998.221604973942, + "lag_at_window_end": 0, + "peak_lag": 56, + "drain_secs": 4.17e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 84913, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 7246.136340292603, + "dispatch_p50_ms": 1.019791, + "dispatch_p95_ms": 1859.309041, + "dispatch_p99_ms": 2153.256458, + "e2e_p50_ms": 1.019833, + "e2e_p95_ms": 1859.309125, + "e2e_p99_ms": 2153.2565, + "scaling_efficiency": 0.2898734387929356, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 11.718382875, + "setup_secs": 0.009811917, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 84913, + "published_at_window_end": 84913, + "processed_at_window_end": 84913, + "achieved_publish_msg_per_sec": 7246.136340292603, + "lag_at_window_end": 0, + "peak_lag": 6522, + "drain_secs": 1.66e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 13246.319681468536, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 0.927858183029042, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 3.309372041, + "setup_secs": 0.086255333, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 11.983012958, + "producers": 8, + "unique_at_start": 400, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 39344, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 3341.0239975486015, + "dispatch_p50_ms": 634.862958, + "dispatch_p95_ms": 2096.353583, + "dispatch_p99_ms": 2480.997791, + "e2e_p50_ms": 634.863125, + "e2e_p95_ms": 2096.353666, + "e2e_p99_ms": 2480.998, + "scaling_efficiency": 0.6684336628614487, + "peak_rss_mb": 7.984375, + "cpu_pct": 0.0, + "duration_secs": 11.775731042, + "setup_secs": 0.043714667, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 39344, + "published_at_window_end": 39344, + "processed_at_window_end": 39343, + "achieved_publish_msg_per_sec": 3341.1089179664027, + "lag_at_window_end": 1, + "peak_lag": 6139, + "drain_secs": 0.011784708, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 3345.297977772424, + "dispatch_p50_ms": 629.1225, + "dispatch_p95_ms": 1239.828791, + "dispatch_p99_ms": 1525.666958, + "e2e_p50_ms": 629.122542, + "e2e_p95_ms": 1239.828875, + "e2e_p99_ms": 1525.667, + "scaling_efficiency": 0.4141489494386255, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 5.978540666, + "setup_secs": 0.025537125 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 2717.4174724134996, + "dispatch_p50_ms": 722.415375, + "dispatch_p95_ms": 1464.479, + "dispatch_p99_ms": 1684.172417, + "e2e_p50_ms": 722.415417, + "e2e_p95_ms": 1464.479042, + "e2e_p99_ms": 1684.172583, + "scaling_efficiency": 0.328975654368139, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 7.359929125, + "setup_secs": 0.009005333 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 4, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 6640.082359889706, + "dispatch_p50_ms": 279.533584, + "dispatch_p95_ms": 1619.662208, + "dispatch_p99_ms": 1815.282167, + "e2e_p50_ms": 279.533625, + "e2e_p95_ms": 1619.662375, + "e2e_p99_ms": 1815.282292, + "scaling_efficiency": 1.4644049814411804, + "peak_rss_mb": 0.09375, + "cpu_pct": 0.0, + "duration_secs": 3.012010833, + "setup_secs": 0.053628625 + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 16707.854362182497, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 1.457853279083627, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 323.18602275, + "setup_secs": 0.0088395, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 91.739660875, + "producers": 8, + "unique_at_start": 255, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49991, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.966007215246, + "dispatch_p50_ms": 0.481958, + "dispatch_p95_ms": 2.303125, + "dispatch_p99_ms": 3.877792, + "e2e_p50_ms": 0.482041, + "e2e_p95_ms": 2.303208, + "e2e_p99_ms": 3.877875, + "scaling_efficiency": 1.0001248389926636, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.000268041, + "setup_secs": 0.008793583, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49991, + "published_at_window_end": 49991, + "processed_at_window_end": 49991, + "achieved_publish_msg_per_sec": 4998.966007215246, + "lag_at_window_end": 0, + "peak_lag": 22, + "drain_secs": 2.09e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 244083, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 23915.885178361114, + "dispatch_p50_ms": 7.919875, + "dispatch_p95_ms": 272.089709, + "dispatch_p99_ms": 331.944583, + "e2e_p50_ms": 7.919917, + "e2e_p95_ms": 272.089917, + "e2e_p99_ms": 331.944791, + "scaling_efficiency": 2.539239473386916, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.205894458, + "setup_secs": 0.007273875, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 244083, + "published_at_window_end": 244083, + "processed_at_window_end": 244083, + "achieved_publish_msg_per_sec": 23915.885178361114, + "lag_at_window_end": 0, + "peak_lag": 6950, + "drain_secs": 2.5e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 260908, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 25941.75661042952, + "dispatch_p50_ms": 150.832583, + "dispatch_p95_ms": 298.90325, + "dispatch_p99_ms": 329.541625, + "e2e_p50_ms": 150.832625, + "e2e_p95_ms": 298.903333, + "e2e_p99_ms": 329.541791, + "scaling_efficiency": 0.9915278099004116, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.057453083, + "setup_secs": 0.008444791, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 260908, + "published_at_window_end": 260908, + "processed_at_window_end": 260908, + "achieved_publish_msg_per_sec": 25941.75661042952, + "lag_at_window_end": 0, + "peak_lag": 7857, + "drain_secs": 8.4e-8, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 43876.39474431387, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 3.941177721230217, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 64.520159792, + "setup_secs": 0.009196209, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 110.993996791, + "producers": 8, + "unique_at_start": 244, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4999.076564801093, + "dispatch_p50_ms": 0.505417, + "dispatch_p95_ms": 2.4055, + "dispatch_p99_ms": 4.316167, + "e2e_p50_ms": 0.505583, + "e2e_p95_ms": 2.405542, + "e2e_p99_ms": 4.31625, + "scaling_efficiency": 1.000707271437676, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.000246916, + "setup_secs": 0.005889291, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4999.076564801093, + "lag_at_window_end": 0, + "peak_lag": 37, + "drain_secs": 2.92e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249979, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24992.550759386297, + "dispatch_p50_ms": 0.747292, + "dispatch_p95_ms": 1.96575, + "dispatch_p99_ms": 3.332709, + "e2e_p50_ms": 0.747375, + "e2e_p95_ms": 1.965833, + "e2e_p99_ms": 3.332917, + "scaling_efficiency": 2.8027149831346385, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.002140334, + "setup_secs": 0.011167458, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249979, + "published_at_window_end": 249979, + "processed_at_window_end": 249979, + "achieved_publish_msg_per_sec": 24992.550759386297, + "lag_at_window_end": 0, + "peak_lag": 187, + "drain_secs": 2.08e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 353399, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 34968.05466170082, + "dispatch_p50_ms": 114.029834, + "dispatch_p95_ms": 218.425291, + "dispatch_p99_ms": 228.911958, + "e2e_p50_ms": 114.029875, + "e2e_p95_ms": 218.425333, + "e2e_p99_ms": 228.912, + "scaling_efficiency": 1.422882750766123, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.106338583, + "setup_secs": 0.005748917, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 353399, + "published_at_window_end": 353399, + "processed_at_window_end": 353399, + "achieved_publish_msg_per_sec": 34968.05466170082, + "lag_at_window_end": 0, + "peak_lag": 7713, + "drain_secs": 1.67e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 22727.02165568494, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 3.2204602177900696, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.942401458, + "setup_secs": 0.029389666, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.899574667, + "producers": 8, + "unique_at_start": 92, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4997.917076668923, + "dispatch_p50_ms": 0.741917, + "dispatch_p95_ms": 1.845209, + "dispatch_p99_ms": 3.484792, + "e2e_p50_ms": 0.742, + "e2e_p95_ms": 1.845375, + "e2e_p99_ms": 3.484875, + "scaling_efficiency": 0.9999337629025067, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.002566916, + "setup_secs": 0.007856458, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4997.917076668923, + "lag_at_window_end": 0, + "peak_lag": 21, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 101088, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 9481.505566704443, + "dispatch_p50_ms": 396.658417, + "dispatch_p95_ms": 816.51475, + "dispatch_p99_ms": 906.437833, + "e2e_p50_ms": 396.658459, + "e2e_p95_ms": 816.514834, + "e2e_p99_ms": 906.437875, + "scaling_efficiency": 1.3936306866239472, + "peak_rss_mb": 0.15625, + "cpu_pct": 0.0, + "duration_secs": 10.661597917, + "setup_secs": 0.007546875, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 101088, + "published_at_window_end": 101088, + "processed_at_window_end": 101088, + "achieved_publish_msg_per_sec": 9481.505566704443, + "lag_at_window_end": 0, + "peak_lag": 7078, + "drain_secs": 1.67e-7, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 926149.9709870844, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.979425428878452, + "peak_rss_mb": 1.296875, + "cpu_pct": 0.0, + "duration_secs": 5.7879395, + "setup_secs": 0.0456335, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 88.945919291, + "producers": 8, + "unique_at_start": 39500, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4963.934966904324, + "dispatch_p50_ms": 128.234083, + "dispatch_p95_ms": 243.741917, + "dispatch_p99_ms": 253.323292, + "e2e_p50_ms": 128.246083, + "e2e_p95_ms": 243.747791, + "e2e_p99_ms": 253.325375, + "scaling_efficiency": 1.0030251133616472, + "peak_rss_mb": 0.0625, + "cpu_pct": 0.0, + "duration_secs": 10.002145542, + "setup_secs": 0.276523458, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49650, + "achieved_publish_msg_per_sec": 4998.127630724693, + "lag_at_window_end": 342, + "peak_lag": 1192, + "drain_secs": 0.284089625, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249988, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24698.99475091364, + "dispatch_p50_ms": 81.062959, + "dispatch_p95_ms": 153.493542, + "dispatch_p99_ms": 166.325625, + "e2e_p50_ms": 81.075583, + "e2e_p95_ms": 153.504375, + "e2e_p99_ms": 166.54525, + "scaling_efficiency": 3.2244100451790185, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.000407, + "setup_secs": 0.265406333, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249988, + "published_at_window_end": 249988, + "processed_at_window_end": 247000, + "achieved_publish_msg_per_sec": 24997.78259024858, + "lag_at_window_end": 2988, + "peak_lag": 3811, + "drain_secs": 0.352448334, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 353622, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 34773.93510543137, + "dispatch_p50_ms": 164.004208, + "dispatch_p95_ms": 289.231292, + "dispatch_p99_ms": 331.82425, + "e2e_p50_ms": 164.02375, + "e2e_p95_ms": 289.232542, + "e2e_p99_ms": 331.825375, + "scaling_efficiency": 0.6795869439493094, + "peak_rss_mb": 0.109375, + "cpu_pct": 0.0, + "duration_secs": 10.108145625, + "setup_secs": 0.356865209, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 353622, + "published_at_window_end": 353622, + "processed_at_window_end": 351500, + "achieved_publish_msg_per_sec": 34983.86480754723, + "lag_at_window_end": 2122, + "peak_lag": 10122, + "drain_secs": 0.317551875, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 581010.3909250726, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 5.849808117467209, + "peak_rss_mb": 15.8125, + "cpu_pct": 0.0, + "duration_secs": 4.8513005, + "setup_secs": 0.026006125, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.754871792, + "producers": 8, + "unique_at_start": 12500, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49990, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4983.655551695189, + "dispatch_p50_ms": 129.981209, + "dispatch_p95_ms": 244.749916, + "dispatch_p99_ms": 253.875583, + "e2e_p50_ms": 129.990834, + "e2e_p95_ms": 244.755125, + "e2e_p99_ms": 253.879583, + "scaling_efficiency": 1.0069785464788346, + "peak_rss_mb": 0.03125, + "cpu_pct": 0.0, + "duration_secs": 10.0004905, + "setup_secs": 0.257777, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49990, + "published_at_window_end": 49990, + "processed_at_window_end": 49839, + "achieved_publish_msg_per_sec": 4998.7548110765165, + "lag_at_window_end": 151, + "peak_lag": 1266, + "drain_secs": 0.281127042, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249983, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 24796.370842837638, + "dispatch_p50_ms": 80.61075, + "dispatch_p95_ms": 153.099, + "dispatch_p99_ms": 163.709875, + "e2e_p50_ms": 80.625458, + "e2e_p95_ms": 153.101708, + "e2e_p99_ms": 163.710959, + "scaling_efficiency": 0.994089244330426, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.001463584, + "setup_secs": 0.339355708, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249983, + "published_at_window_end": 249983, + "processed_at_window_end": 248000, + "achieved_publish_msg_per_sec": 24994.641824214035, + "lag_at_window_end": 1983, + "peak_lag": 3608, + "drain_secs": 0.224071, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 344698, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 33826.078182391226, + "dispatch_p50_ms": 176.38975, + "dispatch_p95_ms": 301.333417, + "dispatch_p99_ms": 340.80875, + "e2e_p50_ms": 176.404125, + "e2e_p95_ms": 301.340458, + "e2e_p99_ms": 340.812459, + "scaling_efficiency": 0.6383103691099975, + "peak_rss_mb": 3.28125, + "cpu_pct": 0.0, + "duration_secs": 10.140105458, + "setup_secs": 0.264398667, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 344698, + "published_at_window_end": 344698, + "processed_at_window_end": 343000, + "achieved_publish_msg_per_sec": 33993.532062139624, + "lag_at_window_end": 1698, + "peak_lag": 9698, + "drain_secs": 0.2942575, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 33865.14105983459, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.0221670504994287, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.188153917, + "setup_secs": 0.166155208, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.748430584, + "producers": 8, + "unique_at_start": 4000, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 4934.346509911072, + "dispatch_p50_ms": 128.866583, + "dispatch_p95_ms": 241.448208, + "dispatch_p99_ms": 251.27625, + "e2e_p50_ms": 128.889083, + "e2e_p95_ms": 241.450208, + "e2e_p99_ms": 251.277166, + "scaling_efficiency": 0.9968882350874164, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001121709, + "setup_secs": 0.260513125, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49349, + "achieved_publish_msg_per_sec": 4998.639298131154, + "lag_at_window_end": 643, + "peak_lag": 1286, + "drain_secs": 0.1408625, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 118692, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "max_batch_size": 500, + "max_batch_age_ms": 250, + "throughput_msg_per_sec": 11540.062611755777, + "dispatch_p50_ms": 457.984875, + "dispatch_p95_ms": 809.335458, + "dispatch_p99_ms": 887.480375, + "e2e_p50_ms": 457.997792, + "e2e_p95_ms": 809.338583, + "e2e_p99_ms": 887.484167, + "scaling_efficiency": 1.0153353412397046, + "peak_rss_mb": 186.96875, + "cpu_pct": 0.0, + "duration_secs": 10.189979375, + "setup_secs": 0.273811292, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 118692, + "published_at_window_end": 118692, + "processed_at_window_end": 117593, + "achieved_publish_msg_per_sec": 11647.913664202093, + "lag_at_window_end": 1099, + "peak_lag": 9136, + "drain_secs": 0.239117542, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 453289.52803637064, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.146299912135075, + "peak_rss_mb": 5.03125, + "cpu_pct": 0.0, + "duration_secs": 11.869014542, + "setup_secs": 0.047268416, + "method": "drain", + "drain": { + "corpus": 6000000, + "published": 6000000, + "fill_secs": 90.226106875, + "producers": 8, + "unique_at_start": 19900, + "unique_at_end": 5400000, + "unique_final": 6000000, + "deliveries": 6000000, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.079555515643, + "dispatch_p50_ms": 0.623167, + "dispatch_p95_ms": 1.687416, + "dispatch_p99_ms": 2.704084, + "e2e_p50_ms": 0.623375, + "e2e_p95_ms": 1.687583, + "e2e_p99_ms": 2.704375, + "scaling_efficiency": 0.9999503486305957, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.00224175, + "setup_secs": 0.007272709, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.079555515643, + "lag_at_window_end": 0, + "peak_lag": 17, + "drain_secs": 3.75e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 249976, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24995.768537543063, + "dispatch_p50_ms": 0.532833, + "dispatch_p95_ms": 1.701375, + "dispatch_p99_ms": 5.569666, + "e2e_p50_ms": 0.532916, + "e2e_p95_ms": 1.701542, + "e2e_p99_ms": 5.56975, + "scaling_efficiency": 1.0001254163739324, + "peak_rss_mb": 0.015625, + "cpu_pct": 0.0, + "duration_secs": 10.000732709, + "setup_secs": 0.011359458, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249976, + "published_at_window_end": 249976, + "processed_at_window_end": 249976, + "achieved_publish_msg_per_sec": 24995.768537543063, + "lag_at_window_end": 0, + "peak_lag": 147, + "drain_secs": 1.66e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 276216, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 27088.995028276764, + "dispatch_p50_ms": 145.830792, + "dispatch_p95_ms": 280.058166, + "dispatch_p99_ms": 292.446875, + "e2e_p50_ms": 145.830959, + "e2e_p95_ms": 280.058333, + "e2e_p99_ms": 292.447042, + "scaling_efficiency": 0.526794398844685, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.196613042, + "setup_secs": 0.006204708, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 276216, + "published_at_window_end": 276216, + "processed_at_window_end": 276216, + "achieved_publish_msg_per_sec": 27088.995028276764, + "lag_at_window_end": 0, + "peak_lag": 7617, + "drain_secs": 1.66e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 3145728, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 390694.00360718236, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.2717525490901633, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 7.212706041, + "setup_secs": 0.03791875, + "method": "drain", + "drain": { + "corpus": 3145728, + "published": 3145728, + "fill_secs": 52.6685465, + "producers": 8, + "unique_at_start": 13195, + "unique_at_end": 2831156, + "unique_final": 3145728, + "deliveries": 3145728, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.695902512754, + "dispatch_p50_ms": 0.590125, + "dispatch_p95_ms": 1.662709, + "dispatch_p99_ms": 2.843167, + "e2e_p50_ms": 0.590208, + "e2e_p95_ms": 1.662834, + "e2e_p99_ms": 2.843209, + "scaling_efficiency": 1.0000679973427535, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001008458, + "setup_secs": 0.007576542, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.695902512754, + "lag_at_window_end": 0, + "peak_lag": 16, + "drain_secs": 6.67e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 249987, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 24995.919707526496, + "dispatch_p50_ms": 0.546708, + "dispatch_p95_ms": 1.704791, + "dispatch_p99_ms": 8.026167, + "e2e_p50_ms": 0.546833, + "e2e_p95_ms": 1.704833, + "e2e_p99_ms": 8.026292, + "scaling_efficiency": 0.9999333246219642, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001072292, + "setup_secs": 0.011738459, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 249987, + "published_at_window_end": 249987, + "processed_at_window_end": 249986, + "achieved_publish_msg_per_sec": 24996.019696804728, + "lag_at_window_end": 1, + "peak_lag": 193, + "drain_secs": 0.012137375, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 261014, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 25758.446461950243, + "dispatch_p50_ms": 149.85825, + "dispatch_p95_ms": 291.937125, + "dispatch_p99_ms": 311.500667, + "e2e_p50_ms": 149.858292, + "e2e_p95_ms": 291.937167, + "e2e_p99_ms": 311.501875, + "scaling_efficiency": 0.5350219495780639, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.133142167, + "setup_secs": 0.006526666, + "load": { + "offered_msg_per_sec": 100000, + "window_secs": 10, + "producers": 8, + "published": 261014, + "published_at_window_end": 261014, + "processed_at_window_end": 261014, + "achieved_publish_msg_per_sec": 25758.446461950243, + "lag_at_window_end": 0, + "peak_lag": 7632, + "drain_secs": 2.5e-7, + "producer_bound": true, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49152, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 33848.25482233601, + "dispatch_p50_ms": 0.0, + "dispatch_p95_ms": 0.0, + "dispatch_p99_ms": 0.0, + "e2e_p50_ms": 0.0, + "e2e_p95_ms": 0.0, + "e2e_p99_ms": 0.0, + "scaling_efficiency": 2.370951401851935, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.28328625, + "setup_secs": 0.034179917, + "method": "drain", + "drain": { + "corpus": 49152, + "published": 49152, + "fill_secs": 2.8334198329999998, + "producers": 8, + "unique_at_start": 800, + "unique_at_end": 44237, + "unique_final": 49152, + "deliveries": 49152, + "duplicates": 0 + } + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 49992, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 4998.281753163422, + "dispatch_p50_ms": 0.777167, + "dispatch_p95_ms": 1.7215, + "dispatch_p99_ms": 2.63775, + "e2e_p50_ms": 0.777292, + "e2e_p95_ms": 1.721625, + "e2e_p99_ms": 2.637833, + "scaling_efficiency": 0.9999987377318944, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.001837125, + "setup_secs": 0.007430125, + "load": { + "offered_msg_per_sec": 5000, + "window_secs": 10, + "producers": 8, + "published": 49992, + "published_at_window_end": 49992, + "processed_at_window_end": 49992, + "achieved_publish_msg_per_sec": 4998.281753163422, + "lag_at_window_end": 0, + "peak_lag": 41, + "drain_secs": 4.59e-7, + "producer_bound": false, + "sustained": true + }, + "method": "offered_load" + }, + { + "flow": "consumer_group", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 110124, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 10385.615964799454, + "dispatch_p50_ms": 361.936667, + "dispatch_p95_ms": 733.232333, + "dispatch_p99_ms": 776.374208, + "e2e_p50_ms": 361.936708, + "e2e_p95_ms": 733.232375, + "e2e_p99_ms": 776.37425, + "scaling_efficiency": 0.9212048625783013, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 10.603415375, + "setup_secs": 0.009049792, + "load": { + "offered_msg_per_sec": 25000, + "window_secs": 10, + "producers": 8, + "published": 110124, + "published_at_window_end": 110124, + "processed_at_window_end": 110123, + "achieved_publish_msg_per_sec": 10385.710274035171, + "lag_at_window_end": 1, + "peak_lag": 6961, + "drain_secs": 0.01141175, + "producer_bound": false, + "sustained": false + }, + "method": "offered_load" + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 64, + "tier": "moderate", + "messages": 5000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 38518.348395813104, + "dispatch_p50_ms": 103.953583, + "dispatch_p95_ms": 197.48475, + "dispatch_p99_ms": 205.651875, + "e2e_p50_ms": 103.953625, + "e2e_p95_ms": 197.484791, + "e2e_p99_ms": 205.651917, + "scaling_efficiency": 4.768583734014435, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.038466125, + "setup_secs": 0.007771083 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 5000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 37744.00614165939, + "dispatch_p50_ms": 104.561292, + "dispatch_p95_ms": 201.348125, + "dispatch_p99_ms": 215.252875, + "e2e_p50_ms": 104.561333, + "e2e_p95_ms": 201.34825, + "e2e_p99_ms": 215.253, + "scaling_efficiency": 4.569360153520801, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 1.059770917, + "setup_secs": 0.00739375 + }, + { + "flow": "broadcast", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 5000, + "consumers": 8, + "handler": "zero (no-op)", + "handler_cost": "framework", + "throughput_msg_per_sec": 18984.928481339593, + "dispatch_p50_ms": 209.846667, + "dispatch_p95_ms": 396.443042, + "dispatch_p99_ms": 424.194042, + "e2e_p50_ms": 209.84675, + "e2e_p95_ms": 396.443084, + "e2e_p99_ms": 424.194208, + "scaling_efficiency": 4.186939609110517, + "peak_rss_mb": 0.0, + "cpu_pct": 0.0, + "duration_secs": 2.106934458, + "setup_secs": 0.00705275 + } + ], + "failures": [ + { + "flow": "consume_parallel", + "mode": "parallel", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 250000, + "consumers": 1, + "handler": "zero (no-op)", + "method": "offered_load", + "error": "producer failed: publish_batch: batch publish: 433 of 1000 records published, 567 need re-publishing (0 failed, 567 unattempted); first error: connection error: XADD to shove-stress-bench failed: timed out" + }, + { + "flow": "consume_fifo", + "mode": "fifo", + "payload_bytes": 64, + "tier": "moderate", + "messages": 40000, + "consumers": 8, + "handler": "zero (no-op)", + "error": "topology error: topic 'shove-stress-bench-seq' is sequenced; `concurrent_processing` on a FIFO consumer would break per-key ordering. Drop `with_concurrent_processing(true)` or use `register` for unsequenced topics." + }, + { + "flow": "consume_fifo", + "mode": "fifo", + "payload_bytes": 1024, + "tier": "moderate", + "messages": 40000, + "consumers": 8, + "handler": "zero (no-op)", + "error": "topology error: topic 'shove-stress-bench-seq' is sequenced; `concurrent_processing` on a FIFO consumer would break per-key ordering. Drop `with_concurrent_processing(true)` or use `register` for unsequenced topics." + }, + { + "flow": "consume_fifo", + "mode": "fifo", + "payload_bytes": 65536, + "tier": "moderate", + "messages": 40000, + "consumers": 8, + "handler": "zero (no-op)", + "error": "topology error: topic 'shove-stress-bench-seq' is sequenced; `concurrent_processing` on a FIFO consumer would break per-key ordering. Drop `with_concurrent_processing(true)` or use `register` for unsequenced topics." + }, + { + "flow": "consume_batch", + "mode": "batch", + "payload_bytes": 64, + "tier": "moderate", + "messages": 6000000, + "consumers": 1, + "handler": "zero (no-op)", + "method": "drain", + "error": "purge: DEL: timed out" + } + ], + "unsupported": [] } ] } diff --git a/docs/pages/ops/performance.mdx b/docs/pages/ops/performance.mdx index 046e7b5a..4204b587 100644 --- a/docs/pages/ops/performance.mdx +++ b/docs/pages/ops/performance.mdx @@ -10,13 +10,14 @@ an explicit "not supported" marker, never as a zero. And a backend the results document does not contain is never plotted, so absence from a chart means "not measured here", not "slow". -The document these charts render from measures the **in-process** and **Kafka** -backends. NATS, RabbitMQ and Redis are supported by the harness but are not in -this document yet; SQS additionally only runs against LocalStack -(non-representative by design), which needs a LocalStack Pro auth token. The -harness refuses to merge runs measured on different hosts into one document, so -completing the set means re-measuring every backend back to back on a single -host rather than appending to what is published here — that rerun is pending. +The document these charts render from measures the **in-process**, **Kafka**, +**RabbitMQ** and **Redis** backends. NATS is supported by the harness but is not +in this document yet: the drain fill deadlocks in the NATS publisher's in-flight +ack budget, and the run waits on that fix. SQS only runs against LocalStack +(non-representative by design), needs a LocalStack Pro auth token, and is not in +this document either. The harness refuses to merge runs measured on different +hosts into one document, so completing the set means measuring the remaining +backends on the same host as the published runs. ### Throughput vs consumer count diff --git a/docs/public/bench/dispatch-latency-1kib-dark.svg b/docs/public/bench/dispatch-latency-1kib-dark.svg index d05604e2..4868aa27 100644 --- a/docs/public/bench/dispatch-latency-1kib-dark.svg +++ b/docs/public/bench/dispatch-latency-1kib-dark.svg @@ -7,102 +7,183 @@ Dispatch latency percentiles consume_parallel — 1 KiB payload — sustained offered load — lower is better - + dispatch = publish → handler entry, measured while a paced producer held the offered rate and the consumers kept up (a - + sustained offered-load rung); the backlog a corpus-mode row would add is absent by construction + +highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer; rabbitmq at + -highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer +5.0k msg/s, 1 consumer; redis at 5.0k msg/s, 1 consumer -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + milliseconds - - - - + + + + + + + + + - - + + + 0.0 - - + + 5.0 - - + + 10 - - + + 15 - - + + 20 + + +25 + + + +30 + + + +35 + + + +40 + + + +45 + - - - - - + +50 + + + + + + + 0.9 - - - - - + + + + + 3.9 - - - - - + + + + + 20 - - - - - + + + + + 8.0 - - - - - + + + + + 13 - - - - - + + + + + 21 - + + + + + +1.3 + + + + + + +15 + + + + + + +47 + + + + + + +1.1 + + + + + + +2.2 + + + + + + +3.1 + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/dispatch-latency-1kib.svg b/docs/public/bench/dispatch-latency-1kib.svg index 1c14fec4..6d1f1232 100644 --- a/docs/public/bench/dispatch-latency-1kib.svg +++ b/docs/public/bench/dispatch-latency-1kib.svg @@ -7,102 +7,183 @@ Dispatch latency percentiles consume_parallel — 1 KiB payload — sustained offered load — lower is better - + dispatch = publish → handler entry, measured while a paced producer held the offered rate and the consumers kept up (a - + sustained offered-load rung); the backlog a corpus-mode row would add is absent by construction + +highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer; rabbitmq at + -highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer +5.0k msg/s, 1 consumer; redis at 5.0k msg/s, 1 consumer -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + milliseconds - - - - + + + + + + + + + - - + + + 0.0 - - + + 5.0 - - + + 10 - - + + 15 - - + + 20 + + +25 + + + +30 + + + +35 + + + +40 + + + +45 + - - - - - + +50 + + + + + + + 0.9 - - - - - + + + + + 3.9 - - - - - + + + + + 20 - - - - - + + + + + 8.0 - - - - - + + + + + 13 - - - - - + + + + + 21 - + + + + + +1.3 + + + + + + +15 + + + + + + +47 + + + + + + +1.1 + + + + + + +2.2 + + + + + + +3.1 + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/dispatch-latency-64kib-dark.svg b/docs/public/bench/dispatch-latency-64kib-dark.svg index fe5c08c9..48fb7d11 100644 --- a/docs/public/bench/dispatch-latency-64kib-dark.svg +++ b/docs/public/bench/dispatch-latency-64kib-dark.svg @@ -7,132 +7,168 @@ Dispatch latency percentiles consume_parallel — 64 KiB payload — sustained offered load — lower is better - + dispatch = publish → handler entry, measured while a paced producer held the offered rate and the consumers kept up (a - + sustained offered-load rung); the backlog a corpus-mode row would add is absent by construction + +highest sustained rung per backend: inmemory at 25k msg/s, 1 consumer; kafka at 5.0k msg/s, 1 consumer; rabbitmq at + -highest sustained rung per backend: inmemory at 25k msg/s, 1 consumer; kafka at 5.0k msg/s, 1 consumer +5.0k msg/s, 2 consumers; redis at 5.0k msg/s, 1 consumer -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + milliseconds - - - + + - - - - - - - - - + + + + + + + 0.0 - - -5.0 - - - + + 10 - + -15 - - - 20 - - -25 - - - + + 30 - - -35 - - - + + 40 - - -45 - - - + + 50 - - - - - - + + +60 + + + +70 + + + + + + + 0.5 - - - - - + + + + + 13 - - - - - + + + + + 45 - - - - - + + + + + 8.3 - - - - - + + + + + 12 - - - - - + + + + + 18 - + + + + + +2.1 + + + + + + +5.9 + + + + + + +67 + + + + + + +1.4 + + + + + + +2.6 + + + + + + +3.4 + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/dispatch-latency-64kib.svg b/docs/public/bench/dispatch-latency-64kib.svg index 335b35dd..7867e91b 100644 --- a/docs/public/bench/dispatch-latency-64kib.svg +++ b/docs/public/bench/dispatch-latency-64kib.svg @@ -7,132 +7,168 @@ Dispatch latency percentiles consume_parallel — 64 KiB payload — sustained offered load — lower is better - + dispatch = publish → handler entry, measured while a paced producer held the offered rate and the consumers kept up (a - + sustained offered-load rung); the backlog a corpus-mode row would add is absent by construction + +highest sustained rung per backend: inmemory at 25k msg/s, 1 consumer; kafka at 5.0k msg/s, 1 consumer; rabbitmq at + -highest sustained rung per backend: inmemory at 25k msg/s, 1 consumer; kafka at 5.0k msg/s, 1 consumer +5.0k msg/s, 2 consumers; redis at 5.0k msg/s, 1 consumer -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + milliseconds - - - + + - - - - - - - - - + + + + + + + 0.0 - - -5.0 - - - + + 10 - + -15 - - - 20 - - -25 - - - + + 30 - - -35 - - - + + 40 - - -45 - - - + + 50 - - - - - - + + +60 + + + +70 + + + + + + + 0.5 - - - - - + + + + + 13 - - - - - + + + + + 45 - - - - - + + + + + 8.3 - - - - - + + + + + 12 - - - - - + + + + + 18 - + + + + + +2.1 + + + + + + +5.9 + + + + + + +67 + + + + + + +1.4 + + + + + + +2.6 + + + + + + +3.4 + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/dispatch-latency-dark.svg b/docs/public/bench/dispatch-latency-dark.svg index a65809f6..b3299322 100644 --- a/docs/public/bench/dispatch-latency-dark.svg +++ b/docs/public/bench/dispatch-latency-dark.svg @@ -7,107 +7,158 @@ Dispatch latency percentiles consume_parallel — 64 B payload — sustained offered load — lower is better - + dispatch = publish → handler entry, measured while a paced producer held the offered rate and the consumers kept up (a - + sustained offered-load rung); the backlog a corpus-mode row would add is absent by construction + +highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer; rabbitmq at + -highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer +25k msg/s, 1 consumer; redis at 5.0k msg/s, 1 consumer -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + milliseconds - - - - - + + + + + - - + + 0.0 - - + + 5.0 - - + + 10 - - + + 15 - - + + 20 - + 25 - - - - - + + + + + 0.9 - - - - - + + + + + 3.5 - - - - - + + + + + 7.1 - - - - - + + + + + 8.2 - - - - - + + + + + 13 - - - - - + + + + + 22 - + + + + + +2.7 + + + + + + +6.5 + + + + + + +14 + + + + + + +1.1 + + + + + + +2.3 + + + + + + +4.3 + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/dispatch-latency.svg b/docs/public/bench/dispatch-latency.svg index 6a3c052c..2e62c22e 100644 --- a/docs/public/bench/dispatch-latency.svg +++ b/docs/public/bench/dispatch-latency.svg @@ -7,107 +7,158 @@ Dispatch latency percentiles consume_parallel — 64 B payload — sustained offered load — lower is better - + dispatch = publish → handler entry, measured while a paced producer held the offered rate and the consumers kept up (a - + sustained offered-load rung); the backlog a corpus-mode row would add is absent by construction + +highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer; rabbitmq at + -highest sustained rung per backend: inmemory at 100k msg/s, 1 consumer; kafka at 100k msg/s, 1 consumer +25k msg/s, 1 consumer; redis at 5.0k msg/s, 1 consumer -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + milliseconds - - - - - + + + + + - - + + 0.0 - - + + 5.0 - - + + 10 - - + + 15 - - + + 20 - + 25 - - - - - + + + + + 0.9 - - - - - + + + + + 3.5 - - - - - + + + + + 7.1 - - - - - + + + + + 8.2 - - - - - + + + + + 13 - - - - - + + + + + 22 - + + + + + +2.7 + + + + + + +6.5 + + + + + + +14 + + + + + + +1.1 + + + + + + +2.3 + + + + + + +4.3 + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/framework-overhead-dark.svg b/docs/public/bench/framework-overhead-dark.svg index 92d2dcde..a6c926a0 100644 --- a/docs/public/bench/framework-overhead-dark.svg +++ b/docs/public/bench/framework-overhead-dark.svg @@ -35,13 +35,13 @@ from the moment every worker was assigned until 90 % of a corpus of 6.0M message been consumed; no producer ran in the window -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] nanoseconds / message diff --git a/docs/public/bench/framework-overhead.svg b/docs/public/bench/framework-overhead.svg index e72cf108..4d49c260 100644 --- a/docs/public/bench/framework-overhead.svg +++ b/docs/public/bench/framework-overhead.svg @@ -35,13 +35,13 @@ from the moment every worker was assigned until 90 % of a corpus of 6.0M message been consumed; no producer ran in the window -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] nanoseconds / message diff --git a/docs/public/bench/parallel-vs-sequenced-1kib-dark.svg b/docs/public/bench/parallel-vs-sequenced-1kib-dark.svg index 5acca4ad..c5ccb177 100644 --- a/docs/public/bench/parallel-vs-sequenced-1kib-dark.svg +++ b/docs/public/bench/parallel-vs-sequenced-1kib-dark.svg @@ -7,121 +7,174 @@ Parallel vs sequenced consume 1 KiB payload — least-parallel measurement per mode — what ordering costs — higher is better + +redis / sequenced (fifo): failed to run — absent, not zero; see failures[] in the results document + + +kafka, rabbitmq / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the + + +true rate is at least the bar shown + + +rabbitmq / parallel, sequenced (fifo), batch: measured at 8 workers (the least-parallel count the measured modes + -kafka / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the true rate is +share) -at least the bar shown +inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound -inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound +batch bars: up to 500 messages or 250 ms per batch -batch bars: up to 500 messages or 250 ms per batch +drain (inmemory, kafka, rabbitmq, redis): each consume_batch / consume_parallel point is the processing rate of the -drain (inmemory, kafka): each consume_batch / consume_parallel point is the processing rate of the consumers from the +consumers from the moment every worker was assigned until 90 % of a corpus of 3.1M messages, published before they -moment every worker was assigned until 90 % of a corpus of 3.1M messages, published before they started, had been +started, had been consumed; no producer ran in the window -consumed; no producer ran in the window +redis: 1 cell in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second - - - + + - - - - - - + + + + + + + 0.0 - - + + 200k - - + + 400k - - + + 600k - - + + 800k - - + + 1.0M - - + + 1.2M - - + + 1.4M - - - - - - + + + + + + 637k - + n/s - - - - - + + + + + 1.3M - - - - - + + + + + 81k - + ≥1.6k - - - - - + + + + + 86k - + + + + + +28k + + + +≥10.0k + + + + + + +30k + + + + + + +11k + + +n/s + + + + + + +99k + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/parallel-vs-sequenced-1kib.svg b/docs/public/bench/parallel-vs-sequenced-1kib.svg index bf67e337..1ef97f24 100644 --- a/docs/public/bench/parallel-vs-sequenced-1kib.svg +++ b/docs/public/bench/parallel-vs-sequenced-1kib.svg @@ -7,121 +7,174 @@ Parallel vs sequenced consume 1 KiB payload — least-parallel measurement per mode — what ordering costs — higher is better + +redis / sequenced (fifo): failed to run — absent, not zero; see failures[] in the results document + + +kafka, rabbitmq / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the + + +true rate is at least the bar shown + + +rabbitmq / parallel, sequenced (fifo), batch: measured at 8 workers (the least-parallel count the measured modes + -kafka / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the true rate is +share) -at least the bar shown +inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound -inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound +batch bars: up to 500 messages or 250 ms per batch -batch bars: up to 500 messages or 250 ms per batch +drain (inmemory, kafka, rabbitmq, redis): each consume_batch / consume_parallel point is the processing rate of the -drain (inmemory, kafka): each consume_batch / consume_parallel point is the processing rate of the consumers from the +consumers from the moment every worker was assigned until 90 % of a corpus of 3.1M messages, published before they -moment every worker was assigned until 90 % of a corpus of 3.1M messages, published before they started, had been +started, had been consumed; no producer ran in the window -consumed; no producer ran in the window +redis: 1 cell in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second - - - + + - - - - - - + + + + + + + 0.0 - - + + 200k - - + + 400k - - + + 600k - - + + 800k - - + + 1.0M - - + + 1.2M - - + + 1.4M - - - - - - + + + + + + 637k - + n/s - - - - - + + + + + 1.3M - - - - - + + + + + 81k - + ≥1.6k - - - - - + + + + + 86k - + + + + + +28k + + + +≥10.0k + + + + + + +30k + + + + + + +11k + + +n/s + + + + + + +99k + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/parallel-vs-sequenced-64kib-dark.svg b/docs/public/bench/parallel-vs-sequenced-64kib-dark.svg index bbd967a1..2419d7b2 100644 --- a/docs/public/bench/parallel-vs-sequenced-64kib-dark.svg +++ b/docs/public/bench/parallel-vs-sequenced-64kib-dark.svg @@ -7,143 +7,199 @@ Parallel vs sequenced consume 64 KiB payload — least-parallel measurement per mode — what ordering costs — higher is better + +redis / sequenced (fifo): failed to run — absent, not zero; see failures[] in the results document + + +inmemory, kafka, rabbitmq / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, + + +so the true rate is at least the bar shown + + +kafka / parallel: measured at 2 workers (no worker count is shared by the measured modes, so the bars are not directly + -inmemory, kafka / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the +comparable) -true rate is at least the bar shown +rabbitmq / sequenced (fifo): measured at 8 workers (no worker count is shared by the measured modes, so the bars are -kafka / parallel: measured at 2 workers (no worker count is shared by the measured modes, so the bars are not directly +not directly comparable) -comparable) +inmemory / sequenced (fifo): measured at 8 workers (the least-parallel count the measured modes share) -inmemory / sequenced (fifo): measured at 8 workers (the least-parallel count the measured modes share) +inmemory / parallel, batch: measured, but every window under 1 s — too short to publish as a rate, even a lower bound -inmemory / parallel, batch: measured, but every window under 1 s — too short to publish as a rate, even a lower bound +batch bars: up to 500 messages or 250 ms per batch -batch bars: up to 500 messages or 250 ms per batch +drain (inmemory, kafka, rabbitmq, redis): each consume_batch / consume_parallel point is the processing rate of the -drain (inmemory, kafka): each consume_batch / consume_parallel point is the processing rate of the consumers from the +consumers from the moment every worker was assigned until 90 % of a corpus of 49k messages, published before they -moment every worker was assigned until 90 % of a corpus of 49k messages, published before they started, had been +started, had been consumed; no producer ran in the window -consumed; no producer ran in the window +inmemory: 1 cell in this slice failed to run — absent, not zero; see failures[] -inmemory: 1 cell in this slice failed to run — absent, not zero; see failures[] +rabbitmq, redis: 2 cells in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second - - - - - - - - - - - - + + + + + + + + + + + + 0.0 - - + + 5.0k - - + + 10k - - + + 15k - - + + 20k - - + + 25k - - + + 30k - - + + 35k - - + + 40k - - + + 45k - - + + n/s - - - - - + + + + + ≥30k - + n/s - - - - - + + + + + 41k - - - - - + + + + + ≥1.5k - - - - - + + + + + 30k - + + + + + +1.4k + + + + + + +≥3.2k + + + + + + +4.3k + + + + + + +7.1k + + +n/s + + + + + + +17k + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/parallel-vs-sequenced-64kib.svg b/docs/public/bench/parallel-vs-sequenced-64kib.svg index bf98fd50..172ba4bd 100644 --- a/docs/public/bench/parallel-vs-sequenced-64kib.svg +++ b/docs/public/bench/parallel-vs-sequenced-64kib.svg @@ -7,143 +7,199 @@ Parallel vs sequenced consume 64 KiB payload — least-parallel measurement per mode — what ordering costs — higher is better + +redis / sequenced (fifo): failed to run — absent, not zero; see failures[] in the results document + + +inmemory, kafka, rabbitmq / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, + + +so the true rate is at least the bar shown + + +kafka / parallel: measured at 2 workers (no worker count is shared by the measured modes, so the bars are not directly + -inmemory, kafka / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the +comparable) -true rate is at least the bar shown +rabbitmq / sequenced (fifo): measured at 8 workers (no worker count is shared by the measured modes, so the bars are -kafka / parallel: measured at 2 workers (no worker count is shared by the measured modes, so the bars are not directly +not directly comparable) -comparable) +inmemory / sequenced (fifo): measured at 8 workers (the least-parallel count the measured modes share) -inmemory / sequenced (fifo): measured at 8 workers (the least-parallel count the measured modes share) +inmemory / parallel, batch: measured, but every window under 1 s — too short to publish as a rate, even a lower bound -inmemory / parallel, batch: measured, but every window under 1 s — too short to publish as a rate, even a lower bound +batch bars: up to 500 messages or 250 ms per batch -batch bars: up to 500 messages or 250 ms per batch +drain (inmemory, kafka, rabbitmq, redis): each consume_batch / consume_parallel point is the processing rate of the -drain (inmemory, kafka): each consume_batch / consume_parallel point is the processing rate of the consumers from the +consumers from the moment every worker was assigned until 90 % of a corpus of 49k messages, published before they -moment every worker was assigned until 90 % of a corpus of 49k messages, published before they started, had been +started, had been consumed; no producer ran in the window -consumed; no producer ran in the window +inmemory: 1 cell in this slice failed to run — absent, not zero; see failures[] -inmemory: 1 cell in this slice failed to run — absent, not zero; see failures[] +rabbitmq, redis: 2 cells in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second - - - - - - - - - - - - + + + + + + + + + + + + 0.0 - - + + 5.0k - - + + 10k - - + + 15k - - + + 20k - - + + 25k - - + + 30k - - + + 35k - - + + 40k - - + + 45k - - + + n/s - - - - - + + + + + ≥30k - + n/s - - - - - + + + + + 41k - - - - - + + + + + ≥1.5k - - - - - + + + + + 30k - + + + + + +1.4k + + + + + + +≥3.2k + + + + + + +4.3k + + + + + + +7.1k + + +n/s + + + + + + +17k + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/parallel-vs-sequenced-dark.svg b/docs/public/bench/parallel-vs-sequenced-dark.svg index a54c5e37..fde9c02b 100644 --- a/docs/public/bench/parallel-vs-sequenced-dark.svg +++ b/docs/public/bench/parallel-vs-sequenced-dark.svg @@ -7,111 +7,163 @@ Parallel vs sequenced consume 64 B payload — least-parallel measurement per mode — what ordering costs — higher is better + +redis / sequenced (fifo): failed to run — absent, not zero; see failures[] in the results document + + +kafka, rabbitmq / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the + + +true rate is at least the bar shown + + +redis / parallel, batch: measured at 2 workers (the least-parallel count the measured modes share) + + +rabbitmq / parallel, sequenced (fifo), batch: measured at 8 workers (the least-parallel count the measured modes + -kafka / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the true rate is +share) -at least the bar shown +inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound -inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound +batch bars: up to 500 messages or 250 ms per batch -batch bars: up to 500 messages or 250 ms per batch +drain (inmemory, kafka, rabbitmq, redis): each consume_batch / consume_parallel point is the processing rate of the -drain (inmemory, kafka): each consume_batch / consume_parallel point is the processing rate of the consumers from the +consumers from the moment every worker was assigned until 90 % of a corpus of 6.0M messages, published before they -moment every worker was assigned until 90 % of a corpus of 6.0M messages, published before they started, had been +started, had been consumed; no producer ran in the window -consumed; no producer ran in the window +redis: 2 cells in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second - - - - - - - - + + + + + + + + 0.0 - - + + 500k - - + + 1.0M - - + + 1.5M - - + + 2.0M - - + + 2.5M - - - - - - + + + + + + 654k - + n/s - - - - - + + + + + 2.5M - - - - - + + + + + 114k - + ≥1.6k - - - - - + + + + + 112k - + + + + + +26k + + +≥2.4k + + + + + + +33k + + + +20k + + +n/s + + + + + + +311k + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/parallel-vs-sequenced.svg b/docs/public/bench/parallel-vs-sequenced.svg index ecde6fe8..98e70af1 100644 --- a/docs/public/bench/parallel-vs-sequenced.svg +++ b/docs/public/bench/parallel-vs-sequenced.svg @@ -7,111 +7,163 @@ Parallel vs sequenced consume 64 B payload — least-parallel measurement per mode — what ordering costs — higher is better + +redis / sequenced (fifo): failed to run — absent, not zero; see failures[] in the results document + + +kafka, rabbitmq / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the + + +true rate is at least the bar shown + + +redis / parallel, batch: measured at 2 workers (the least-parallel count the measured modes share) + + +rabbitmq / parallel, sequenced (fifo), batch: measured at 8 workers (the least-parallel count the measured modes + -kafka / sequenced (fifo): lower bound (muted bar) — this window cannot separate setup from drain, so the true rate is +share) -at least the bar shown +inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound -inmemory / sequenced (fifo): measured, but every window under 1 s — too short to publish as a rate, even a lower bound +batch bars: up to 500 messages or 250 ms per batch -batch bars: up to 500 messages or 250 ms per batch +drain (inmemory, kafka, rabbitmq, redis): each consume_batch / consume_parallel point is the processing rate of the -drain (inmemory, kafka): each consume_batch / consume_parallel point is the processing rate of the consumers from the +consumers from the moment every worker was assigned until 90 % of a corpus of 6.0M messages, published before they -moment every worker was assigned until 90 % of a corpus of 6.0M messages, published before they started, had been +started, had been consumed; no producer ran in the window -consumed; no producer ran in the window +redis: 2 cells in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second - - - - - - - - + + + + + + + + 0.0 - - + + 500k - - + + 1.0M - - + + 1.5M - - + + 2.0M - - + + 2.5M - - - - - - + + + + + + 654k - + n/s - - - - - + + + + + 2.5M - - - - - + + + + + 114k - + ≥1.6k - - - - - + + + + + 112k - + + + + + +26k + + +≥2.4k + + + + + + +33k + + + +20k + + +n/s + + + + + + +311k + + inmemory - + kafka - + +rabbitmq + + +redis + + backend diff --git a/docs/public/bench/throughput-vs-consumers-1kib-dark.svg b/docs/public/bench/throughput-vs-consumers-1kib-dark.svg index 1611abc1..270fb48a 100644 --- a/docs/public/bench/throughput-vs-consumers-1kib-dark.svg +++ b/docs/public/bench/throughput-vs-consumers-1kib-dark.svg @@ -8,22 +8,22 @@ Throughput vs consumer count consume_parallel — 1 KiB payload — higher is better -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the -worker was assigned until 90 % of a corpus of 3.1M messages, published before they started, had been consumed; no +moment every worker was assigned until 90 % of a corpus of 3.1M messages, published before they started, had been -producer ran in the window +consumed; no producer ran in the window -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] messages / second — log scale @@ -126,6 +126,8 @@ messages / second — log scale + + @@ -142,6 +144,22 @@ messages / second — log scale + + + + + + + + + + + + + + + + kafka @@ -150,6 +168,14 @@ kafka inmemory + + +redis + + + +rabbitmq + 1 @@ -173,4 +199,12 @@ inmemory kafka + + +rabbitmq + + + +redis + diff --git a/docs/public/bench/throughput-vs-consumers-1kib.svg b/docs/public/bench/throughput-vs-consumers-1kib.svg index 6ef27988..584654a0 100644 --- a/docs/public/bench/throughput-vs-consumers-1kib.svg +++ b/docs/public/bench/throughput-vs-consumers-1kib.svg @@ -8,22 +8,22 @@ Throughput vs consumer count consume_parallel — 1 KiB payload — higher is better -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the -worker was assigned until 90 % of a corpus of 3.1M messages, published before they started, had been consumed; no +moment every worker was assigned until 90 % of a corpus of 3.1M messages, published before they started, had been -producer ran in the window +consumed; no producer ran in the window -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] messages / second — log scale @@ -126,6 +126,8 @@ messages / second — log scale + + @@ -142,6 +144,22 @@ messages / second — log scale + + + + + + + + + + + + + + + + kafka @@ -150,6 +168,14 @@ kafka inmemory + + +redis + + + +rabbitmq + 1 @@ -173,4 +199,12 @@ inmemory kafka + + +rabbitmq + + + +redis + diff --git a/docs/public/bench/throughput-vs-consumers-64kib-dark.svg b/docs/public/bench/throughput-vs-consumers-64kib-dark.svg index f98354f4..c2a82c38 100644 --- a/docs/public/bench/throughput-vs-consumers-64kib-dark.svg +++ b/docs/public/bench/throughput-vs-consumers-64kib-dark.svg @@ -7,76 +7,158 @@ Throughput vs consumer count consume_parallel — 64 KiB payload — higher is better - + inmemory: measured, but no drain rate is published for this slice — window under 1 s, too short to publish as a rate - + at consumers 1, 2, 4, 8 - + kafka: partial — not plotted: window under 1 s, too short to publish as a rate at consumers 1, 4, 8 + +rabbitmq: partial — not plotted: failed to run — absent, not zero; see failures[] in the results document (a failed + + +drain; the cell's ladder rungs are not its ceiling) at consumers 8 + + +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the + -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +moment every worker was assigned until 90 % of a corpus of 49k messages, published before they started, had been -worker was assigned until 90 % of a corpus of 49k messages, published before they started, had been consumed; no +consumed; no producer ran in the window -producer ran in the window +rabbitmq, redis: 1 cell in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second — log scale - - - - - - + + + + + + + + + + + + + + + + +1.0k + + + +2.0k + + + +3.0k + + + +4.0k + + + +5.0k + + + +6.0k + + + +7.0k + + + +8.0k + + + +9.0k + + + +10k + + + 10k - - + + 20k - - + + 30k - - + + 40k - - - - - + + + + + + + + + + + + + + + + + + + + + kafka - + +rabbitmq + + + +redis + + 1 - + 2 - + 4 - + 8 - + consumers @@ -87,4 +169,12 @@ inmemory (withheld) kafka (single point) + + +rabbitmq + + + +redis + diff --git a/docs/public/bench/throughput-vs-consumers-64kib.svg b/docs/public/bench/throughput-vs-consumers-64kib.svg index e4e9d0fd..604745ff 100644 --- a/docs/public/bench/throughput-vs-consumers-64kib.svg +++ b/docs/public/bench/throughput-vs-consumers-64kib.svg @@ -7,76 +7,158 @@ Throughput vs consumer count consume_parallel — 64 KiB payload — higher is better - + inmemory: measured, but no drain rate is published for this slice — window under 1 s, too short to publish as a rate - + at consumers 1, 2, 4, 8 - + kafka: partial — not plotted: window under 1 s, too short to publish as a rate at consumers 1, 4, 8 + +rabbitmq: partial — not plotted: failed to run — absent, not zero; see failures[] in the results document (a failed + + +drain; the cell's ladder rungs are not its ceiling) at consumers 8 + + +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the + -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +moment every worker was assigned until 90 % of a corpus of 49k messages, published before they started, had been -worker was assigned until 90 % of a corpus of 49k messages, published before they started, had been consumed; no +consumed; no producer ran in the window -producer ran in the window +rabbitmq, redis: 1 cell in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second — log scale - - - - - - + + + + + + + + + + + + + + + + +1.0k + + + +2.0k + + + +3.0k + + + +4.0k + + + +5.0k + + + +6.0k + + + +7.0k + + + +8.0k + + + +9.0k + + + +10k + + + 10k - - + + 20k - - + + 30k - - + + 40k - - - - - + + + + + + + + + + + + + + + + + + + + + kafka - + +rabbitmq + + + +redis + + 1 - + 2 - + 4 - + 8 - + consumers @@ -87,4 +169,12 @@ inmemory (withheld) kafka (single point) + + +rabbitmq + + + +redis + diff --git a/docs/public/bench/throughput-vs-consumers-dark.svg b/docs/public/bench/throughput-vs-consumers-dark.svg index fd175c08..f91d6008 100644 --- a/docs/public/bench/throughput-vs-consumers-dark.svg +++ b/docs/public/bench/throughput-vs-consumers-dark.svg @@ -8,98 +8,174 @@ Throughput vs consumer count consume_parallel — 64 B payload — higher is better -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the -worker was assigned until 90 % of a corpus of 6.0M messages, published before they started, had been consumed; no +moment every worker was assigned until 90 % of a corpus of 6.0M messages, published before they started, had been -producer ran in the window +consumed; no producer ran in the window -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] messages / second — log scale - + + + + + + + - - - + + + + + - - + + + + -100k +10k - -200k + +20k + + + +30k + + + +40k + + + +50k + + + +60k + + + +70k - + + +80k + + -300k +90k - + +100k + + + +100k + + + +200k + + + +300k + + + 400k - - + + 500k - - + + 600k - - + + 700k - - + + 800k - - + + 900k - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + kafka - - + + inmemory + + +rabbitmq + + + +redis + 1 @@ -123,4 +199,12 @@ inmemory kafka + + +rabbitmq + + + +redis + diff --git a/docs/public/bench/throughput-vs-consumers.svg b/docs/public/bench/throughput-vs-consumers.svg index 3dd6883e..7d461deb 100644 --- a/docs/public/bench/throughput-vs-consumers.svg +++ b/docs/public/bench/throughput-vs-consumers.svg @@ -8,98 +8,174 @@ Throughput vs consumer count consume_parallel — 64 B payload — higher is better -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the -worker was assigned until 90 % of a corpus of 6.0M messages, published before they started, had been consumed; no +moment every worker was assigned until 90 % of a corpus of 6.0M messages, published before they started, had been -producer ran in the window +consumed; no producer ran in the window -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] messages / second — log scale - + + + + + + + - - - + + + + + - - + + + + -100k +10k - -200k + +20k + + + +30k + + + +40k + + + +50k + + + +60k + + + +70k - + + +80k + + -300k +90k - + +100k + + + +100k + + + +200k + + + +300k + + + 400k - - + + 500k - - + + 600k - - + + 700k - - + + 800k - - + + 900k - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + kafka - - + + inmemory + + +rabbitmq + + + +redis + 1 @@ -123,4 +199,12 @@ inmemory kafka + + +rabbitmq + + + +redis + diff --git a/docs/public/bench/throughput-vs-payload-dark.svg b/docs/public/bench/throughput-vs-payload-dark.svg index 00708e2e..50253a67 100644 --- a/docs/public/bench/throughput-vs-payload-dark.svg +++ b/docs/public/bench/throughput-vs-payload-dark.svg @@ -7,145 +7,100 @@ Throughput vs payload size consume_parallel — 1 consumer — higher is better - + inmemory: partial — not plotted: window under 1 s, too short to publish as a rate at payload size 64 KiB - + kafka: partial — not plotted: window under 1 s, too short to publish as a rate at payload size 64 KiB + +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the + -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +moment every worker was assigned until 90 % of a corpus of 49k / 3.1M / 6.0M messages, published before they started, -worker was assigned until 90 % of a corpus of 49k / 3.1M / 6.0M messages, published before they started, had been +had been consumed; no producer ran in the window -consumed; no producer ran in the window +redis: 1 cell in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second — log scale - - - - - - - - - - - - - - - - - - - -10k - - - -20k - - - -30k - - - -40k - - - -50k + + + + + +1.0k - - -60k - - - -70k - - - -80k - - - -90k - - - -100k + + +10k - - + + 100k - - -200k - - - -300k - - - -400k - - - -500k - - - -600k - - - -700k - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + inmemory - + kafka - + + +redis + + + +rabbitmq + + 64 B - + 1 KiB - + 64 KiB - + payload size @@ -156,4 +111,12 @@ inmemory kafka + + +rabbitmq + + + +redis + diff --git a/docs/public/bench/throughput-vs-payload.svg b/docs/public/bench/throughput-vs-payload.svg index 74807e77..6d95010f 100644 --- a/docs/public/bench/throughput-vs-payload.svg +++ b/docs/public/bench/throughput-vs-payload.svg @@ -7,145 +7,100 @@ Throughput vs payload size consume_parallel — 1 consumer — higher is better - + inmemory: partial — not plotted: window under 1 s, too short to publish as a rate at payload size 64 KiB - + kafka: partial — not plotted: window under 1 s, too short to publish as a rate at payload size 64 KiB + +drain (inmemory, kafka, rabbitmq, redis): each consume_parallel point is the processing rate of the consumers from the + -drain (inmemory, kafka): each consume_parallel point is the processing rate of the consumers from the moment every +moment every worker was assigned until 90 % of a corpus of 49k / 3.1M / 6.0M messages, published before they started, -worker was assigned until 90 % of a corpus of 49k / 3.1M / 6.0M messages, published before they started, had been +had been consumed; no producer ran in the window -consumed; no producer ran in the window +redis: 1 cell in this slice failed to run — absent, not zero; see failures[] -Generated 2026-09-04T13:16:16Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) +Generated 2026-09-07T13:47:38Z — shove 0.14.0 — Apple M4 Max (16c / 64 GB) Apple M4 Max — 16 cores — 64 GB RAM — macOS 26.6.2 — rustc 1.91.1 (ed61e7d7e 2025-11-07) — handler: zero (no-op) -1 recorded failure(s) in the dataset — see failures[] +9 recorded failure(s) in the dataset — see failures[] - + messages / second — log scale - - - - - - - - - - - - - - - - - - - -10k - - - -20k - - - -30k - - - -40k - - - -50k + + + + + +1.0k - - -60k - - - -70k - - - -80k - - - -90k - - - -100k + + +10k - - + + 100k - - -200k - - - -300k - - - -400k - - - -500k - - - -600k - - - -700k - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + inmemory - + kafka - + + +redis + + + +rabbitmq + + 64 B - + 1 KiB - + 64 KiB - + payload size @@ -156,4 +111,12 @@ inmemory kafka + + +rabbitmq + + + +redis +