{
  "schemaVersion": 1,
  "generatedFrom": "src/data/release-replay.mjs",
  "releaseReplay": {
    "campaign": {
      "label": "v1.0.4 post-release replay",
      "completed": "2026-11-04",
      "release": "v1.0.4",
      "releaseSourceCommit": "9c252fcc583641341b44ba5ca8b7434a6ff0a165",
      "gatewayPackage": "1.0.4-1",
      "gatewayBinarySha256": "d0c1d631c083a787b2ba88538355d8271529d86eca42d6cfea18306bb33ad31e",
      "environment": "Shared-tenancy AWS c7a.8xlarge, 32 vCPUs per role host",
      "evidenceClass": "Shared-EC2 directional evidence",
      "applicationCpus": 24,
      "clientLanes": 8,
      "protocol": "TLS 1.3, HTTP/1.1",
      "responseBytes": 256,
      "topology": [
        {
          "role": "Load generator",
          "detail": "Eight open-loop client lanes on a separate shared c7a.8xlarge host."
        },
        {
          "role": "Gateway target",
          "detail": "One gateway or comparator active at a time on a shared c7a.8xlarge host."
        },
        {
          "role": "Upstreams",
          "detail": "Two deterministic round-robin upstreams on a separate shared c7a.8xlarge host."
        },
        {
          "role": "Evidence and control",
          "detail": "Prometheus, Grafana, Console/control plane and retained evidence on a fourth host."
        }
      ],
      "cpuPlacement": "Application work on logical CPUs 8-31; housekeeping and IRQ work on 0-7; irqbalance active with the application set excluded.",
      "runOrder": "System order rotated, with only one system active on the target host at a time.",
      "acceptance": [
        "Correct status, body, headers, authentication and protocol semantics.",
        "Zero unexpected client errors, timeouts or semantic failures.",
        "p95 and p99 each at or below 500 ms; p99.9 is diagnostic only.",
        "Reconciled request counts and bounded application, host, IRQ, support-role, RSS and descriptor collection.",
        "No relevant process restart, leak signal, failed recovery or cleanup failure.",
        "Scheduled repetition successful-RPS variation no greater than 5 percent, without selecting a preferred run."
      ],
      "claimBoundary": "Workload-specific directional and feature-cost evidence. Not maximum capacity, dedicated-host evidence, infrastructure-cost proof, or universal product superiority.",
      "reproductionGuide": "https://docs.routesphere.global/how-to/reproduce-bounded-benchmark/"
    },
    "c03": {
      "label": "Bounded request and response header transformations",
      "comparator": "NGINX 1.30.4",
      "semantics": "Matched TLS, payload, connection intent, upstreams, request/response transformations, client lanes and application-CPU allowance.",
      "setup": {
        "tls": "TLS 1.3 on api.example.test:8443",
        "downstream": "HTTP/1.1 with a 256-byte upstream response",
        "gatewayProfiles": "BonVoyage with 24 reactor shards; NGINX 1.30.4 with 24 workers; each receives the same 24-CPU allowance.",
        "traffic": "Eight client lanes, 30-second warmup and 60-second measured window per run.",
        "upstreams": "Two fixed round-robin origins with matched keepalive and timeout intent.",
        "disabledFeatures": "Caching, compression, access logs, request buffering and response buffering disabled.",
        "transformationProof": "Exact request and response set, append and remove outcomes checked before and after every load run."
      },
      "loadSchedule": [
        {
          "point": "20%",
          "offeredRps": 120000,
          "class": "Frozen curve",
          "purpose": "Establish the low-load semantic and repeatability reference.",
          "outcome": "Accepted: BonVoyage 3/3 and NGINX 3/3."
        },
        {
          "point": "40%",
          "offeredRps": 240000,
          "class": "Frozen curve",
          "purpose": "Observe the middle of the operating curve before tail pressure.",
          "outcome": "Accepted: BonVoyage 3/3 and NGINX 3/3."
        },
        {
          "point": "60%",
          "offeredRps": 360000,
          "class": "Frozen curve",
          "purpose": "Planned intermediate bracket.",
          "outcome": "Closed unexecuted after 40%, 80% and the supplemental diagnostic bracketed the relevant behavior."
        },
        {
          "point": "80%",
          "offeredRps": 480000,
          "class": "Frozen curve",
          "purpose": "Test a high fixed rate while retaining stable primary tails.",
          "outcome": "Accepted: BonVoyage 3/3 and NGINX 3/3."
        },
        {
          "point": "100%",
          "offeredRps": 600000,
          "class": "Supplemental diagnostic",
          "purpose": "Examine tail stability at the frozen envelope, without calling it capacity.",
          "outcome": "BonVoyage accepted 3/3; NGINX accepted 1/3 because repetitions 1 and 3 exceeded the p99 gate."
        }
      ],
      "p80": {
        "label": "Frozen 80% operating point",
        "offeredRps": 480000,
        "repetitionsPerSystem": 3,
        "measuredRequests": 172800000,
        "errors": 0,
        "rows": [
          {
            "name": "BonVoyage",
            "successfulRps": 479929.5,
            "p50Ms": 0.657,
            "p95Ms": 1.367,
            "p99Ms": 31.709,
            "p999Ms": 139.713,
            "applicationCpuCores": 22.12,
            "wholeHostCpuPercent": 82.6,
            "irqCpuPercent": 13.32,
            "rssMib": 601.2,
            "descriptors": 3943,
            "supportCpuPercent": 34.66,
            "tailGatePasses": 3
          },
          {
            "name": "NGINX",
            "successfulRps": 479930.2,
            "p50Ms": 0.589,
            "p95Ms": 1.335,
            "p99Ms": 29.711,
            "p999Ms": 89.611,
            "applicationCpuCores": 13.97,
            "wholeHostCpuPercent": 55.79,
            "irqCpuPercent": 13.23,
            "rssMib": 956.4,
            "descriptors": 5225,
            "supportCpuPercent": 33.22,
            "tailGatePasses": 3
          }
        ],
        "interpretation": "Both systems passed all three repetitions. NGINX retained slightly lower primary latency and consumed less measured application CPU, a point-specific resource advantage; BonVoyage used 37.1% less RSS and 24.5% fewer descriptors.",
        "harnessCommit": "429caa8b"
      },
      "p100": {
        "label": "Supplemental 100% diagnostic",
        "offeredRps": 600000,
        "repetitionsPerSystem": 3,
        "measuredRequests": 216000000,
        "errors": 0,
        "primaryP99GateMs": 500,
        "rows": [
          {
            "name": "BonVoyage",
            "successfulRps": 599899.2,
            "p50Ms": 0.786,
            "p95Ms": 2.18,
            "p99Ms": 189.934,
            "p999Ms": 323.272,
            "applicationCpuCores": 22.66,
            "wholeHostCpuPercent": 87.2,
            "irqCpuPercent": 15.92,
            "rssMib": 643.2,
            "descriptors": 3930,
            "supportCpuPercent": 44.47,
            "tailGatePasses": 3
          },
          {
            "name": "NGINX",
            "successfulRps": 599787.9,
            "p50Ms": 0.731,
            "p95Ms": 256.919,
            "p99Ms": 745.333,
            "p999Ms": 871.884,
            "applicationCpuCores": 16.92,
            "wholeHostCpuPercent": 68.47,
            "irqCpuPercent": 15.51,
            "rssMib": 959,
            "descriptors": 5242,
            "supportCpuPercent": 43.97,
            "tailGatePasses": 1
          }
        ],
        "interpretation": "All 216 million measured requests returned HTTP 200 with zero client errors or timeouts. BonVoyage passed the p95/p99 tail gate in 3/3 repetitions; NGINX passed 1/3. NGINX retained lower p50 and consumed less measured application CPU, but that lower CPU value did not establish greater efficiency because two repetitions missed the p99 gate. BonVoyage used 32.9% less RSS and 25.0% fewer descriptors.",
        "harnessCommit": "775de103",
        "boundary": "This point is a supplemental diagnostic outside the frozen 20/40/60/80% curve. It is not a capacity result or a universal ranking."
      }
    },
    "d03": {
      "label": "Combined production-policy cost",
      "harnessCommit": "15f7e85f1240b7a0c00382cf3982286bdb5bd752",
      "offeredRps": 24000,
      "connections": 256,
      "repetitionsPerProfile": 3,
      "measuredRequests": 8640000,
      "profiledRequests": 34560000,
      "errors": 0,
      "gatewayRestarts": 0,
      "semanticCasesPassed": 6,
      "purpose": "Measure the incremental cost and correctness of a realistic composed policy path against a payload-matched BonVoyage control.",
      "acceptanceReason": "All three control and all three combined-policy measurements reconciled, every warmup and measured request succeeded, all six positive and negative semantic cases passed, primary tails stayed inside the gate, and no gateway restart occurred.",
      "policyComponents": [
        "Trusted-proxy client identity",
        "Source-IP allow and deny",
        "RS256 JWT authentication and authorization",
        "JWT verification budget",
        "CORS",
        "Request content type and size guard",
        "Route-local rate limiting",
        "Route concurrency admission",
        "Request and response header transformations",
        "Authority and path rewrite",
        "Bounded retry budget",
        "Passive endpoint health"
      ],
      "profiles": [
        {
          "name": "Payload-matched control",
          "successfulRps": 23999.25,
          "p50Ms": 0.238,
          "p95Ms": 0.3,
          "p99Ms": 0.335,
          "p999Ms": 0.782,
          "applicationCpuCores": 7.456,
          "wholeHostCpuPercent": 23.32,
          "rssMib": 552.75,
          "descriptors": 203
        },
        {
          "name": "Combined policy",
          "successfulRps": 23999.21,
          "p50Ms": 0.285,
          "p95Ms": 0.362,
          "p99Ms": 0.412,
          "p999Ms": 0.886,
          "applicationCpuCores": 8.119,
          "wholeHostCpuPercent": 24.3,
          "rssMib": 555.19,
          "descriptors": 211
        }
      ],
      "increments": {
        "successfulRpsPercent": -0.0002,
        "p50Percent": 19.55,
        "p95Percent": 20.7,
        "p99Percent": 23.12,
        "p999Percent": 13.28,
        "applicationCpuCores": 0.663,
        "applicationCpuPercent": 8.89,
        "wholeHostCpuPoints": 0.98,
        "rssMib": 2.43,
        "rssPercent": 0.44,
        "descriptors": 8
      },
      "semantics": "The positive path and exact transformations passed; missing JWT returned 401, denied source returned 403, invalid content type returned 415, and admitted CORS preflight returned 204.",
      "evidence": {
        "manifestSha256": "84e58d05cacea4da09118266740fdf90511859009278c1663f729e644a77e69d",
        "resultSha256": "e743d4d581ab56015a521a797bec9ce5e1270aa5e00660197fee24c424bb1886",
        "retainedArchiveSha256": "d9c389c39ba5350e5d67b570f1dfdc029d4eb9912db605f7308d2d605176ca5e",
        "credentialsRetained": false,
        "privateKeysRetained": false
      },
      "boundary": "This is BonVoyage-only incremental feature cost at one fixed moderate rate. It is not a comparator, maximum-capacity or saturation result."
    }
  }
}
