Benchmark Results

Redis + Hybrid Benchmark Comparison

Redis + Hybrid provider comparisons (stress/load + Criterion) under shared client settings.

Redis + Hybrid backend performance (comparison)

This suite compares the backend cost of three Redis rate limiting approaches under the same client concurrency and runtime.

Environment + machine details for interpreting results: see Benchmarking & Load Testing (Results).

How to run:

make stress-redis-compare

Environment:

  • Redis: Docker Compose (compose.yaml) on Docker Desktop (server linux/arm64)
  • Client: 16 threads
  • Duration: 30s per case

Backends compared:

  • trypema Redis provider (Lua sliding-window)
  • trypema Hybrid provider (local fast-path + periodic Redis sync)
  • redis-cell module (CL.THROTTLE)
  • GCRA Lua script (equivalent to go-redis/redis_rate allowN)

Caveat: semantics differ (sliding window vs GCRA), so results are backend-cost comparisons, not strict behavioral equivalence.

Hybrid note: the Hybrid provider uses a local fast-path and periodically syncs to Redis, so it is not a pure "Redis round-trip per op" backend. It is included here because it still depends on Redis and is a common deployment choice when you want higher throughput with bounded state lag.

In these results, Hybrid runs use sync_interval_ms = 10ms.

Command captured (for reference):

make stress-redis-compare

Module-based approaches (like redis-cell) tend to be faster because the logic runs as native Redis module code with less Lua interpreter overhead and fewer internal steps than multi-op Lua scripts.

Hot key (rate_limit_per_s=1000)

Workload: --key-dist hot — always uses a single key (user_0).

tokio runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)64,36924332336749081430,0161,901,152000
gcra (Lua allowN-style)52,21130339143861081630,0151,536,405000
trypema (Redis + Absolute)47,6203324335027031,16030,6031,398,032000
trypema (Redis + Suppressed)41,0323865215999061,12233,11501,3061,196,6170
trypema (Hybrid + Absolute)11,360,28011114530,000340,794,220000
trypema (Hybrid + Suppressed)10,568,47611111,214,46329,98405,007317,034,4100

smol runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)83,22318722725435755630,0162,466,720000
gcra (Lua allowN-style)53,24831235840048771130,0151,567,457000
trypema (Redis + Absolute)43,4903734254721,3201,32830,0001,274,729000
trypema (Redis + Suppressed)39,97539251256373591033,18102,7341,163,3630
trypema (Hybrid + Absolute)10,995,32311113,21130,000329,834,016000
trypema (Hybrid + Suppressed)10,629,54311111,524,73564,98705,004318,828,2040

Uniform keys (100k keys, rate_limit_per_s=1e9)

Workload: --key-dist uniform --key-space 100000 — random key per op, effectively unlimited rate.

tokio runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)58,2282593393953,79115,1351,750,3820000
gcra (Lua allowN-style)52,2513023894356141,3651,570,8370000
trypema (Redis + Absolute)39,5783965416279632,3091,190,0450000
trypema (Redis + Suppressed)33,6084486617683,23310,5351,010,2510000
trypema (Hybrid + Absolute)8,628,8331111927,167259,464,9430000
trypema (Hybrid + Suppressed)9,216,2021111322,719277,038,6400000

smol runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)72,6462102532832,9594,4872,184,0640000
gcra (Lua allowN-style)52,32030236141677016,9751,572,7180000
trypema (Redis + Absolute)38,3534025355827452,3091,152,8330000
trypema (Redis + Suppressed)31,7044846337393,18910,335953,1650000
trypema (Hybrid + Absolute)4,044,466111916,087121,575,1350000
trypema (Hybrid + Suppressed)2,817,06211142526,62384,679,9890000

Notes:

  • redis-cell and gcra show higher ops/s under smol for both workloads. For pure Redis round-trip backends, smol's cooperative executor reduces context-switch overhead, particularly under hot-key contention.
  • Trypema's Redis provider throughput is broadly comparable across runtimes (~5–10% variance).
  • Hybrid ops/s in the uniform case is substantially lower under smol (~4M vs ~9M for absolute). Hybrid's local fast-path relies on many concurrent atomics; tokio's work-stealing scheduler distributes these more evenly, while smol's cooperative executor serialises more of that work.
  • For pure Redis round-trip backends, runtime choice has a modest effect relative to the order-of-magnitude gap between Redis round-trip and Hybrid local fast-path.

Redis + Hybrid uniform keys (matrix)

These runs come from make stress-redis-uniform-matrix-tokio and make stress-redis-uniform-matrix-smol (stress harness) and vary key_space and rate_limit_per_s while keeping the rest fixed:

  • --threads 16 --duration-s 30 --window-s 10 --group-ms 10 --mode max --key-dist uniform

Hybrid note: Hybrid runs use sync_interval_ms = 10ms.

The harness prints results in run groups of six (two Redis module/script backends + Redis provider + Hybrid provider). To keep it readable, the matrix is split by (key_space, rate_limit_per_s).

key_space=10, rate_limit_per_s=1

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)55,8224507401,2851,674,7510000
gcra (Lua allowN-style)50,6144476051,1191,518,5000000
trypema (Redis + Absolute)46,0085057109233001,380,002000
trypema (Redis + Suppressed)38,1846689314,6191,1960401,144,2920
trypema (Hybrid + Absolute)10,658,472119,961,471300319,770,837000
trypema (Hybrid + Suppressed)7,860,2451299,327396076235,818,5370
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)79,2992714687452,378,9920000
gcra (Lua allowN-style)49,4964328981,4471,484,9220000
trypema (Redis + Absolute)51,7304125108893001,551,628000
trypema (Redis + Suppressed)41,8925727591,0591,1410401,255,5840
trypema (Hybrid + Absolute)11,025,754119,551300330,777,133000
trypema (Hybrid + Suppressed)9,716,52611196,6075120111291,508,1920

key_space=10, rate_limit_per_s=10

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,3103835398541,839,3920000
gcra (Lua allowN-style)49,6104596801,7101,488,3850000
trypema (Redis + Absolute)45,0675237481,0313,0021,349,077000
trypema (Redis + Suppressed)38,9776401,0051,2575,55304901,163,3250
trypema (Hybrid + Absolute)8,285,258119,953,2793,000248,567,517000
trypema (Hybrid + Suppressed)7,994,4421299,1353,5720523239,841,0650
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)77,3252695085352,319,7920000
gcra (Lua allowN-style)48,2854226346541,448,5640000
trypema (Redis + Absolute)46,3704705876483,0001,388,120000
trypema (Redis + Suppressed)40,9375751,0241,0935,68904901,221,9660
trypema (Hybrid + Absolute)11,024,339118,7833,000330,731,808000
trypema (Hybrid + Suppressed)9,699,24511192,1274,6190568290,981,0340

key_space=10, rate_limit_per_s=100

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,3693835038981,841,1700000
gcra (Lua allowN-style)49,4334586312,5711,483,0720000
trypema (Redis + Absolute)44,4625287131,12530,0131,303,928000
trypema (Redis + Suppressed)37,9956871,3145,54333,95602,1641,103,7440
trypema (Hybrid + Absolute)9,134,9031110,80731,467274,029,615000
trypema (Hybrid + Suppressed)8,697,2161199,13534,53205,042260,889,8660
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)70,8772913716512,126,3520000
gcra (Lua allowN-style)48,2574285811,1981,447,7380000
trypema (Redis + Absolute)46,0654701,6763,99330,0001,351,970000
trypema (Redis + Suppressed)41,83159474284033,05702,0911,219,8010
trypema (Hybrid + Absolute)11,001,5271110,04730,000330,021,664000
trypema (Hybrid + Suppressed)9,589,11111192,63942,21005,600287,629,0590

key_space=10, rate_limit_per_s=10,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,7623824776751,852,9470000
gcra (Lua allowN-style)49,5484616861,4281,486,5160000
trypema (Redis + Absolute)42,9775688211,7681,289,3750000
trypema (Redis + Suppressed)38,8166569781,8611,164,5560000
trypema (Hybrid + Absolute)8,684,7961513,5672,443,095258,115,621000
trypema (Hybrid + Suppressed)7,115,6381399,7113,226,990054,298210,198,3310
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)70,5342984118642,116,0620000
gcra (Lua allowN-style)48,4664421,4011,4021,454,0100000
trypema (Redis + Absolute)42,6615571,2051,3711,279,8460000
trypema (Redis + Suppressed)42,3165721,0141,2721,269,5170000
trypema (Hybrid + Absolute)11,063,173119,2473,000,000328,900,198000
trypema (Hybrid + Suppressed)9,741,50711195,7114,430,15805,105287,813,9180

key_space=10, rate_limit_per_s=100,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,2103784731,0231,836,3890000
gcra (Lua allowN-style)49,6644617311,4281,489,9940000
trypema (Redis + Absolute)42,2745767151,1981,268,3020000
trypema (Redis + Suppressed)38,5536498832,0691,156,6640000
trypema (Hybrid + Absolute)8,053,2771519,47124,245,359217,364,752000
trypema (Hybrid + Suppressed)9,142,90611161,91930,113,4420596,474243,590,1080
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)68,2113524765562,046,3620000
gcra (Lua allowN-style)48,6434538201,3101,459,3300000
trypema (Redis + Absolute)41,2386731,6061,8911,237,1880000
trypema (Redis + Suppressed)40,0486257739851,201,4440000
trypema (Hybrid + Absolute)11,387,286119,994,23930,000,000311,624,114000
trypema (Hybrid + Suppressed)10,085,00511193,02335,133,61301,688,088265,734,3781

key_space=1,000, rate_limit_per_s=1

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)60,6183885121,1441,818,7720000
gcra (Lua allowN-style)48,7194686951,4641,461,7990000
trypema (Redis + Absolute)41,8745839202,11930,0001,226,352000
trypema (Redis + Suppressed)27,7449451,3463,99959,26101,230771,8840
trypema (Hybrid + Absolute)7,350,822149,854,97533,323220,509,608000
trypema (Hybrid + Suppressed)2,343,6751668509,951219,78406,94870,762,3660
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)66,1613447881,1161,985,0210000
gcra (Lua allowN-style)48,0914226126421,442,8920000
trypema (Redis + Absolute)40,3176141,1201,31430,0001,179,592000
trypema (Redis + Suppressed)30,1518342,9833,38361,28701,388841,9650
trypema (Hybrid + Absolute)9,643,2411195430,460289,287,347000
trypema (Hybrid + Suppressed)2,809,6191620373,247251,10007,28284,036,0350

key_space=1,000, rate_limit_per_s=10

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,9924646361,5591,619,8500000
gcra (Lua allowN-style)44,0765458131,5831,322,3490000
trypema (Redis + Absolute)37,4506779521,746300,000823,607000
trypema (Redis + Suppressed)28,3539411,2462,061311,600018,935520,1450
trypema (Hybrid + Absolute)8,243,81011134,303356,529246,977,824000
trypema (Hybrid + Suppressed)2,590,5281662454,3991,902,681047,56375,768,2530
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,2074118301,0401,776,3600000
gcra (Lua allowN-style)47,4974899961,0571,425,0180000
trypema (Redis + Absolute)38,9326331,1741,247300,000868,025000
trypema (Redis + Suppressed)30,1598212,2772,415312,016017,266575,5560
trypema (Hybrid + Absolute)9,515,9141164,767205,380285,299,319000
trypema (Hybrid + Suppressed)3,118,7091599384,5111,660,887033,64991,873,4940

key_space=1,000, rate_limit_per_s=100

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,9914716791,2901,619,8960000
gcra (Lua allowN-style)44,3575447433,2531,330,7760000
trypema (Redis + Absolute)33,7708231,3033,7671,013,2150000
trypema (Redis + Suppressed)29,8448991,5272,965895,3780000
trypema (Hybrid + Absolute)8,191,2571110,2793,359,642242,424,453000
trypema (Hybrid + Suppressed)3,145,5381639338,94313,237,7480295,47581,227,9670
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,8923989311,1961,796,8550000
gcra (Lua allowN-style)47,5844541,4994,7111,427,6840000
trypema (Redis + Absolute)35,6777981,4242,3471,070,3890000
trypema (Redis + Suppressed)32,8187921,2634,057984,6000000
trypema (Hybrid + Absolute)9,521,8661180,8313,572,333282,109,505000
trypema (Hybrid + Suppressed)3,626,5601579377,85514,795,6710118,03193,892,9500

key_space=1,000, rate_limit_per_s=10,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)54,0464717543,5791,621,4690000
gcra (Lua allowN-style)44,1425458032,3051,324,3840000
trypema (Redis + Absolute)34,2267681,3193,1211,026,8450000
trypema (Redis + Suppressed)29,6059021,3122,027888,2480000
trypema (Hybrid + Absolute)9,008,798194,411270,637,4830000
trypema (Hybrid + Suppressed)8,487,169121,991254,627,3260000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)62,4603597021,0321,873,9490000
gcra (Lua allowN-style)48,2134477761,1371,446,5000000
trypema (Redis + Absolute)35,5857199831,4201,067,6490000
trypema (Redis + Suppressed)33,8397811,8671,8691,015,2050000
trypema (Hybrid + Absolute)11,530,183111,612,799212,220,227133,697,111000
trypema (Hybrid + Suppressed)9,728,075114,997,119258,062,617027,349,3416,445,9192

key_space=1,000, rate_limit_per_s=100,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,8074757473,8651,614,3630000
gcra (Lua allowN-style)44,3395397551,2041,330,2540000
trypema (Redis + Absolute)34,1037841,4542,6351,023,1930000
trypema (Redis + Suppressed)29,4289201,4912,523882,9340000
trypema (Hybrid + Absolute)7,358,353163,647220,779,7090000
trypema (Hybrid + Suppressed)7,216,898181,297216,521,9180000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)71,7043006727222,151,2440000
gcra (Lua allowN-style)49,6214125301,1701,488,7380000
trypema (Redis + Absolute)39,9255751,3251,4761,197,8380000
trypema (Redis + Suppressed)34,6667381,3641,4261,040,0390000
trypema (Hybrid + Absolute)14,560,18211589436,829,9760000
trypema (Hybrid + Suppressed)13,351,37111668400,556,0350000

key_space=10,000, rate_limit_per_s=1

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,3674726972,7051,601,3560000
gcra (Lua allowN-style)43,6775608073,6611,310,6440000
trypema (Redis + Absolute)36,3267181,2862,631300,000790,020000
trypema (Redis + Suppressed)29,2499471,96112,455418,521014,643444,4940
trypema (Hybrid + Absolute)6,234,7421366526,335428,909186,650,383000
trypema (Hybrid + Suppressed)51,1102,1033,0631,065,983309,754041,7891,182,5180
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)68,9192974211,6662,067,9640000
gcra (Lua allowN-style)47,60942567510,5431,428,6410000
trypema (Redis + Absolute)40,0265921,4743,589300,000901,138000
trypema (Redis + Suppressed)31,5228322,8774,191422,336013,071510,4950
trypema (Hybrid + Absolute)5,650,6181392192,383443,519169,136,267000
trypema (Hybrid + Suppressed)58,7232,6073,769555,519299,297066,4331,410,4440

key_space=10,000, rate_limit_per_s=10

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,7484801,2513,2091,612,7990000
gcra (Lua allowN-style)43,8985528532,1531,317,2170000
trypema (Redis + Absolute)33,6907791,3632,8411,010,9420000
trypema (Redis + Suppressed)30,0919141,7919,247902,9400000
trypema (Hybrid + Absolute)8,275,750146251,6474,127,161244,238,026000
trypema (Hybrid + Suppressed)213,6051,0572,081539,6473,734,286091,9942,649,4230
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)69,7603025319982,093,3060000
gcra (Lua allowN-style)48,3274146841,1451,450,1650000
trypema (Redis + Absolute)37,6266619911,7011,129,1060000
trypema (Redis + Suppressed)31,3748321,6222,967941,3980000
trypema (Hybrid + Absolute)4,817,22915896,737,9194,277,692140,264,903005
trypema (Hybrid + Suppressed)123,7852,0832,927635,3912,685,0180592,420436,7760

key_space=10,000, rate_limit_per_s=100

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,4913902,2094,9591,785,1600000
gcra (Lua allowN-style)48,5084766201,1501,455,7060000
trypema (Redis + Absolute)35,6557473,20338,8151,069,9520000
trypema (Redis + Suppressed)33,4707781,3713,1151,004,3500000
trypema (Hybrid + Absolute)5,683,23818552,06331,297,611139,243,571000
trypema (Hybrid + Suppressed)1,096,35611,610492,54330,084,03602,120,136693,4080
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)54,8834002,7375,1031,646,8000000
gcra (Lua allowN-style)44,0474751,0062,0531,321,6420000
trypema (Redis + Absolute)34,5126818761,5231,035,5530000
trypema (Redis + Suppressed)31,7548131,2731,549952,7840000
trypema (Hybrid + Absolute)5,619,2501485106,75130,910,552137,696,051009
trypema (Hybrid + Suppressed)730,46112,351600,57521,225,7190667,83924,1030

key_space=10,000, rate_limit_per_s=10,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,7073941,9844,4951,791,9270000
gcra (Lua allowN-style)48,5154696511,4841,455,8130000
trypema (Redis + Absolute)37,4546638991,4021,123,9480000
trypema (Redis + Suppressed)31,5338361,7942,393946,2620000
trypema (Hybrid + Absolute)10,069,860121,291302,213,5560000
trypema (Hybrid + Suppressed)6,293,40611113,119188,865,5450000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,1704072,6914,8711,775,4000000
gcra (Lua allowN-style)44,4354811,1881,4511,333,3070000
trypema (Redis + Absolute)33,6896861,0101,1361,010,8590000
trypema (Redis + Suppressed)30,7658671,8792,667923,1290000
trypema (Hybrid + Absolute)10,270,907112,665308,181,9180000
trypema (Hybrid + Suppressed)9,500,654112,401285,069,5350000

key_space=10,000, rate_limit_per_s=100,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,0484022,3833,9651,772,0220000
gcra (Lua allowN-style)48,5774726372,4191,457,6750000
trypema (Redis + Absolute)38,2606549682,0691,148,1880000
trypema (Redis + Suppressed)33,7298051,3542,3811,012,1790000
trypema (Hybrid + Absolute)9,690,7741911,175290,829,0990000
trypema (Hybrid + Suppressed)9,469,741112,695284,162,4780000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)56,6243992,69511,5191,699,0180000
gcra (Lua allowN-style)44,1434718231,3031,324,5310000
trypema (Redis + Absolute)33,7996961,2604,7471,014,1640000
trypema (Redis + Suppressed)31,0808031,4412,207932,5720000
trypema (Hybrid + Absolute)10,865,742113,577326,026,8130000
trypema (Hybrid + Suppressed)9,423,345113,085282,749,0030000

Notes:

  • All observed errors in these runs are Redis timeouts (RedisError(timed out)) surfaced during Hybrid state reads.
  • Matrix results above were captured with both the tokio runtime (make stress-redis-uniform-matrix-tokio) and the smol runtime (make stress-redis-uniform-matrix-smol).