{
  "schema": 3,
  "crate": "ruststream-fred",
  "crate_version": "0.7.0",
  "core_version": "0.7.0-rc.11",
  "measured_at": "2026-09-27",
  "environment": {
    "cpu": "AMD Ryzen 9 7900X 12-Core Processor",
    "architecture": "x86_64",
    "cpu_frequency": "427-5912 MHz",
    "cores": "12 physical, 24 logical",
    "memory": "62.4 GiB",
    "memory_speed": "unknown",
    "os": "Linux 7.2.7-x64v3-xanmod1-1",
    "broker": "redis:7-alpine in Docker on the host network, persistence off: a standalone server, a six-node cluster and a master behind Sentinel",
    "round_trip": "standalone 22 \u00b5s, cluster 25 \u00b5s, sentinel 24 \u00b5s (one EXISTS and its answer)",
    "rustc": "1.98.1",
    "profile": "bench, inheriting release (opt-level = 3, lto = false, codegen-units = 16)",
    "features": "ruststream-fred default (none), ruststream macros,json (the service loop only)",
    "rustflags": "none (the recipe clears RUSTFLAGS, so the numbers are not tied to this CPU)",
    "valgrind": "3.25.1"
  },
  "scenarios": [
    {
      "name": "Redis Streams consumer group, standalone, 512 B JSON, ack each",
      "unit": "msg/s",
      "messages": 304610,
      "pairs": 3,
      "raw": {
        "best": 51326,
        "median": 51293,
        "worst": 49628
      },
      "adapter": {
        "best": 51036,
        "median": 50247,
        "worst": 49579
      },
      "framework": {
        "best": 50739,
        "median": 49943,
        "worst": 48361
      },
      "overhead_percent": 1.1,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 0.6,
      "adapter_verdict": "indistinguishable",
      "broker_bound": true
    },
    {
      "name": "Redis Streams consumer group, cluster, 512 B JSON, ack each",
      "unit": "msg/s",
      "messages": 238991,
      "pairs": 3,
      "raw": {
        "best": 39596,
        "median": 34982,
        "worst": 34071
      },
      "adapter": {
        "best": 38674,
        "median": 34977,
        "worst": 33953
      },
      "framework": {
        "best": 38363,
        "median": 34554,
        "worst": 33768
      },
      "overhead_percent": 3.1,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 2.3,
      "adapter_verdict": "indistinguishable",
      "broker_bound": true
    },
    {
      "name": "Redis Streams consumer group, sentinel, 512 B JSON, ack each",
      "unit": "msg/s",
      "messages": 256408,
      "pairs": 3,
      "raw": {
        "best": 40743,
        "median": 40444,
        "worst": 36241
      },
      "adapter": {
        "best": 40202,
        "median": 40034,
        "worst": 37667
      },
      "framework": {
        "best": 40213,
        "median": 38946,
        "worst": 34793
      },
      "overhead_percent": 1.3,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 1.3,
      "adapter_verdict": "indistinguishable",
      "broker_bound": true
    },
    {
      "name": "Redis list work queue (reliable), standalone, 512 B JSON, ack each",
      "unit": "msg/s",
      "messages": 184331,
      "pairs": 3,
      "raw": {
        "best": 29548,
        "median": 29342,
        "worst": 29311
      },
      "adapter": {
        "best": 28970,
        "median": 28639,
        "worst": 28495
      },
      "framework": {
        "best": 28575,
        "median": 28514,
        "worst": 28282
      },
      "overhead_percent": 3.3,
      "verdict": "measured",
      "adapter_overhead_percent": 2.0,
      "adapter_verdict": "measured",
      "broker_bound": true
    },
    {
      "name": "Redis list work queue (reliable), cluster, 512 B JSON, ack each",
      "unit": "msg/s",
      "messages": 138373,
      "pairs": 3,
      "raw": {
        "best": 22656,
        "median": 22216,
        "worst": 19308
      },
      "adapter": {
        "best": 22449,
        "median": 22290,
        "worst": 22092
      },
      "framework": {
        "best": 22128,
        "median": 22002,
        "worst": 20851
      },
      "overhead_percent": 2.3,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 0.9,
      "adapter_verdict": "indistinguishable",
      "broker_bound": true
    },
    {
      "name": "Redis list work queue (reliable), sentinel, 512 B JSON, ack each",
      "unit": "msg/s",
      "messages": 146035,
      "pairs": 3,
      "raw": {
        "best": 23372,
        "median": 21630,
        "worst": 20439
      },
      "adapter": {
        "best": 22720,
        "median": 22374,
        "worst": 20102
      },
      "framework": {
        "best": 22562,
        "median": 21649,
        "worst": 19701
      },
      "overhead_percent": 3.5,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 2.8,
      "adapter_verdict": "indistinguishable",
      "broker_bound": true
    },
    {
      "name": "Redis Pub/Sub, standalone, 512 B JSON, no acknowledgement",
      "unit": "msg/s",
      "messages": 2000000,
      "pairs": 3,
      "raw": {
        "best": 402530,
        "median": 397136,
        "worst": 389707
      },
      "adapter": {
        "best": 400183,
        "median": 400038,
        "worst": 390336
      },
      "framework": {
        "best": 397976,
        "median": 394780,
        "worst": 393224
      },
      "overhead_percent": 1.1,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 0.6,
      "adapter_verdict": "indistinguishable",
      "broker_bound": false
    },
    {
      "name": "Redis Pub/Sub (sharded), cluster, 512 B JSON, no acknowledgement",
      "unit": "msg/s",
      "messages": 2000000,
      "pairs": 3,
      "raw": {
        "best": 297850,
        "median": 295380,
        "worst": 285282
      },
      "adapter": {
        "best": 295819,
        "median": 292015,
        "worst": 288518
      },
      "framework": {
        "best": 290276,
        "median": 289083,
        "worst": 283968
      },
      "overhead_percent": 2.5,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 0.7,
      "adapter_verdict": "indistinguishable",
      "broker_bound": false
    },
    {
      "name": "Redis Pub/Sub, sentinel, 512 B JSON, no acknowledgement",
      "unit": "msg/s",
      "messages": 2000000,
      "pairs": 3,
      "raw": {
        "best": 358378,
        "median": 353940,
        "worst": 352801
      },
      "adapter": {
        "best": 355630,
        "median": 352911,
        "worst": 350609
      },
      "framework": {
        "best": 395136,
        "median": 351006,
        "worst": 346070
      },
      "overhead_percent": -10.3,
      "verdict": "indistinguishable",
      "adapter_overhead_percent": 0.8,
      "adapter_verdict": "indistinguishable",
      "broker_bound": false
    }
  ],
  "code": [
    {
      "name": "stream consumer group, JSON decode into a small struct, XACK each",
      "messages": 1000,
      "framework": {
        "instructions": 32860.7,
        "allocations": 29.7
      },
      "cold": {
        "instructions": 777211,
        "allocations": 467
      },
      "gated": true
    },
    {
      "name": "stream reply, appended with XADD through RedisPublish",
      "messages": 1000,
      "framework": {
        "instructions": 53459.4,
        "allocations": 44.7
      },
      "cold": {
        "instructions": 814951,
        "allocations": 483
      },
      "gated": true
    },
    {
      "name": "stream consumer group in batches of 64, XACK each",
      "messages": 1000,
      "framework": {
        "instructions": 33166.8,
        "allocations": 29.8
      },
      "cold": {
        "instructions": 798525,
        "allocations": 470
      },
      "gated": true
    },
    {
      "name": "reliable list, JSON decode into a small struct, LREM each",
      "messages": 1000,
      "framework": {
        "instructions": 39668.0,
        "allocations": 26.0
      },
      "cold": {
        "instructions": 727658,
        "allocations": 415
      },
      "gated": true
    },
    {
      "name": "Pub/Sub channel, JSON decode into a small struct",
      "messages": 1000,
      "framework": {
        "instructions": 8768.7,
        "allocations": 6.0
      },
      "cold": {
        "instructions": 916144,
        "allocations": 402
      },
      "gated": true
    },
    {
      "name": "Pub/Sub pattern, JSON decode into a small struct",
      "messages": 1000,
      "framework": {
        "instructions": 9135.9,
        "allocations": 6.0
      },
      "cold": {
        "instructions": 915955,
        "allocations": 397
      },
      "gated": true
    },
    {
      "name": "stream with .pipeline(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 38225.6,
        "allocations": 39.2
      },
      "cold": {
        "instructions": 820308,
        "allocations": 515
      },
      "gated": true
    },
    {
      "name": "stream with .pipeline().atomic(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 78086.7,
        "allocations": 71.8
      },
      "cold": {
        "instructions": 839410,
        "allocations": 523
      },
      "gated": true
    },
    {
      "name": "reliable list with .pipeline(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 57556.1,
        "allocations": 48.9
      },
      "cold": {
        "instructions": 2630559,
        "allocations": 1941
      },
      "gated": true
    },
    {
      "name": "reliable list with .pipeline().atomic(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 82776.9,
        "allocations": 68.6
      },
      "cold": {
        "instructions": 2648107,
        "allocations": 1949
      },
      "gated": true
    },
    {
      "name": "Pub/Sub channel with .pipeline(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 31151.8,
        "allocations": 27.1
      },
      "cold": {
        "instructions": 946874,
        "allocations": 433
      },
      "gated": true
    },
    {
      "name": "Pub/Sub channel with .pipeline().atomic(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 56240.5,
        "allocations": 47.3
      },
      "cold": {
        "instructions": 963733,
        "allocations": 447
      },
      "gated": true
    },
    {
      "name": "Pub/Sub pattern with .pipeline(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 31525.9,
        "allocations": 27.1
      },
      "cold": {
        "instructions": 945783,
        "allocations": 428
      },
      "gated": true
    },
    {
      "name": "Pub/Sub pattern with .pipeline().atomic(), one INCR queued per delivery",
      "messages": 1000,
      "framework": {
        "instructions": 56420.4,
        "allocations": 47.3
      },
      "cold": {
        "instructions": 962695,
        "allocations": 442
      },
      "gated": true
    }
  ],
  "code_measured": {
    "crate_version": "0.7.0",
    "core_version": "0.7.0-rc.11",
    "measured_at": "2026-09-27"
  }
}
