{
  "schemaVersion": 1,
  "timestamp": "2026-10-19T07:27:36.1146206+00:00",
  "commit": "14f93ad3b8a407d61b4e6aaab8eb8c8b621f24d3",
  "runtime": ".NET 10.0.13",
  "operatingSystem": "Ubuntu 24.04.5 LTS",
  "architecture": "X64",
  "processorCount": 4,
  "options": {
    "phaseSeconds": 30,
    "requestsPerSecond": 100,
    "maximumInFlight": 512,
    "outputPath": "artifacts/outage/outage-results.json"
  },
  "dependency": {
    "healthyMilliseconds": 5,
    "slowMilliseconds": 300,
    "alternateMilliseconds": 30,
    "failureMilliseconds": 20,
    "cleanupMilliseconds": 20,
    "hedgeMilliseconds": 20,
    "breakMilliseconds": 500,
    "concurrency": 16,
    "queueLimit": 16
  },
  "scenarios": [
    {
      "name": "retry",
      "pipeline": "[when IOException] Retry(2, no delay)",
      "wallSeconds": 119.9988969,
      "recoveryMilliseconds": 250,
      "recoveryWindowMilliseconds": 250,
      "recoveryRequiredSuccesses": 25,
      "peakLogicalInFlight": 31,
      "peakDownstreamInFlight": 31,
      "activeAfterDrain": 0,
      "cancelledAttempts": 0,
      "losersPendingAtCallerCompletion": 0,
      "cleanupAfterCallerP99Milliseconds": 0,
      "cleanupAfterCallerMaximumMilliseconds": 0,
      "phases": [
        {
          "name": "healthy",
          "scheduledStartSeconds": 0,
          "scheduledEndSeconds": 30,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 3000,
          "attemptsPerOfferedRequest": 1,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.257999999998987,
          "latencyP99Milliseconds": 7.225500000000551,
          "successLatencyP99Milliseconds": 7.225500000000551,
          "schedulerLagP99Milliseconds": 1.9988000000008554,
          "attemptsStartedInPhase": 3000
        },
        {
          "name": "slowdown",
          "scheduledStartSeconds": 30,
          "scheduledEndSeconds": 60,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 3000,
          "attemptsPerOfferedRequest": 1,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 301.5946000000014,
          "latencyP99Milliseconds": 302.2480000000023,
          "successLatencyP99Milliseconds": 302.2480000000023,
          "schedulerLagP99Milliseconds": 1.8756999999993695,
          "attemptsStartedInPhase": 3000
        },
        {
          "name": "outage",
          "scheduledStartSeconds": 60,
          "scheduledEndSeconds": 90,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 4,
          "failed": 2996,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 8998,
          "attemptsPerOfferedRequest": 2.9993333333333334,
          "attemptsPerAdmittedRequest": 2.9993333333333334,
          "latencyP95Milliseconds": 62.19740000000229,
          "latencyP99Milliseconds": 62.985800000006975,
          "successLatencyP99Milliseconds": 45.77349999999569,
          "schedulerLagP99Milliseconds": 1.4015000000000555,
          "attemptsStartedInPhase": 8994
        },
        {
          "name": "recovery",
          "scheduledStartSeconds": 90,
          "scheduledEndSeconds": 120,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 3000,
          "attemptsPerOfferedRequest": 1,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.234599999999091,
          "latencyP99Milliseconds": 7.210900000004017,
          "successLatencyP99Milliseconds": 7.210900000004017,
          "schedulerLagP99Milliseconds": 1.4758000000085758,
          "attemptsStartedInPhase": 3004
        }
      ]
    },
    {
      "name": "retry-breaker",
      "pipeline": "[when IOException] Retry(2, no delay) \u2192 CircuitBreaker(5 consecutive, break 500ms)",
      "wallSeconds": 119.9969234,
      "recoveryMilliseconds": 500,
      "recoveryWindowMilliseconds": 250,
      "recoveryRequiredSuccesses": 25,
      "peakLogicalInFlight": 31,
      "peakDownstreamInFlight": 31,
      "activeAfterDrain": 0,
      "cancelledAttempts": 0,
      "losersPendingAtCallerCompletion": 0,
      "cleanupAfterCallerP99Milliseconds": 0,
      "cleanupAfterCallerMaximumMilliseconds": 0,
      "phases": [
        {
          "name": "healthy",
          "scheduledStartSeconds": 0,
          "scheduledEndSeconds": 30,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 3000,
          "attemptsPerOfferedRequest": 1,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.192399999999765,
          "latencyP99Milliseconds": 6.791499999999395,
          "successLatencyP99Milliseconds": 6.791499999999395,
          "schedulerLagP99Milliseconds": 1.0974000000025796,
          "attemptsStartedInPhase": 3000
        },
        {
          "name": "slowdown",
          "scheduledStartSeconds": 30,
          "scheduledEndSeconds": 60,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 3000,
          "attemptsPerOfferedRequest": 1,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 301.5693999999982,
          "latencyP99Milliseconds": 301.88459999999395,
          "successLatencyP99Milliseconds": 301.88459999999395,
          "schedulerLagP99Milliseconds": 1.5472000000045227,
          "attemptsStartedInPhase": 3000
        },
        {
          "name": "outage",
          "scheduledStartSeconds": 60,
          "scheduledEndSeconds": 90,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 66,
          "succeeded": 0,
          "failed": 3000,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 2995,
          "downstreamAttempts": 78,
          "attemptsPerOfferedRequest": 0.026,
          "attemptsPerAdmittedRequest": 1.1818181818181819,
          "latencyP95Milliseconds": 1.1033000000111315,
          "latencyP99Milliseconds": 21.023499999998307,
          "successLatencyP99Milliseconds": null,
          "schedulerLagP99Milliseconds": 1.592599999995059,
          "attemptsStartedInPhase": 78
        },
        {
          "name": "recovery",
          "scheduledStartSeconds": 90,
          "scheduledEndSeconds": 120,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 2998,
          "succeeded": 2998,
          "failed": 2,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 2,
          "downstreamAttempts": 2998,
          "attemptsPerOfferedRequest": 0.9993333333333333,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.188799999989669,
          "latencyP99Milliseconds": 6.237800000008065,
          "successLatencyP99Milliseconds": 6.2393000000042775,
          "schedulerLagP99Milliseconds": 1.0943999999994958,
          "attemptsStartedInPhase": 2998
        }
      ]
    },
    {
      "name": "limit-retry-breaker",
      "pipeline": "ConcurrencyLimit(16, queue 16) \u2192 [when IOException] Retry(2, no delay) \u2192 CircuitBreaker(5 consecutive, break 500ms)",
      "wallSeconds": 119.9971797,
      "recoveryMilliseconds": 500,
      "recoveryWindowMilliseconds": 250,
      "recoveryRequiredSuccesses": 25,
      "peakLogicalInFlight": 33,
      "peakDownstreamInFlight": 16,
      "activeAfterDrain": 0,
      "cancelledAttempts": 0,
      "losersPendingAtCallerCompletion": 0,
      "cleanupAfterCallerP99Milliseconds": 0,
      "cleanupAfterCallerMaximumMilliseconds": 0,
      "phases": [
        {
          "name": "healthy",
          "scheduledStartSeconds": 0,
          "scheduledEndSeconds": 30,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 3000,
          "attemptsPerOfferedRequest": 1,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.212999999998914,
          "latencyP99Milliseconds": 6.661900000000998,
          "successLatencyP99Milliseconds": 6.661900000000998,
          "schedulerLagP99Milliseconds": 1.4807999999999488,
          "attemptsStartedInPhase": 3000
        },
        {
          "name": "slowdown",
          "scheduledStartSeconds": 30,
          "scheduledEndSeconds": 60,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 1608,
          "succeeded": 1600,
          "failed": 1400,
          "harnessRejected": 0,
          "concurrencyRejected": 1384,
          "circuitRejected": 12,
          "downstreamAttempts": 1617,
          "attemptsPerOfferedRequest": 0.539,
          "attemptsPerAdmittedRequest": 1.0055970149253732,
          "latencyP95Milliseconds": 597.5309999999965,
          "latencyP99Milliseconds": 600.2516,
          "successLatencyP99Milliseconds": 860.3369,
          "schedulerLagP99Milliseconds": 1.535099999998124,
          "attemptsStartedInPhase": 1600
        },
        {
          "name": "outage",
          "scheduledStartSeconds": 60,
          "scheduledEndSeconds": 90,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 56,
          "succeeded": 0,
          "failed": 3000,
          "harnessRejected": 0,
          "concurrencyRejected": 3,
          "circuitRejected": 2997,
          "downstreamAttempts": 56,
          "attemptsPerOfferedRequest": 0.018666666666666668,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 1.0943999999994958,
          "latencyP99Milliseconds": 21.1208000000056,
          "successLatencyP99Milliseconds": null,
          "schedulerLagP99Milliseconds": 1.0948999999982334,
          "attemptsStartedInPhase": 73
        },
        {
          "name": "recovery",
          "scheduledStartSeconds": 90,
          "scheduledEndSeconds": 120,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 2993,
          "succeeded": 2993,
          "failed": 7,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 7,
          "downstreamAttempts": 2993,
          "attemptsPerOfferedRequest": 0.9976666666666667,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.211799999988443,
          "latencyP99Milliseconds": 6.730600000011577,
          "successLatencyP99Milliseconds": 6.749700000000303,
          "schedulerLagP99Milliseconds": 1.5233000000023367,
          "attemptsStartedInPhase": 2993
        }
      ]
    },
    {
      "name": "limit-hedge-breaker",
      "pipeline": "ConcurrencyLimit(16, queue 16) \u2192 [when IOException] Hedge(1 extra, delay 20ms) \u2192 CircuitBreaker(5 consecutive, break 500ms)",
      "wallSeconds": 119.9976654,
      "recoveryMilliseconds": 750,
      "recoveryWindowMilliseconds": 250,
      "recoveryRequiredSuccesses": 25,
      "peakLogicalInFlight": 10,
      "peakDownstreamInFlight": 20,
      "activeAfterDrain": 0,
      "cancelledAttempts": 3017,
      "losersPendingAtCallerCompletion": 3017,
      "cleanupAfterCallerP99Milliseconds": 20.88269999999426,
      "cleanupAfterCallerMaximumMilliseconds": 62.48619999999505,
      "phases": [
        {
          "name": "healthy",
          "scheduledStartSeconds": 0,
          "scheduledEndSeconds": 30,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 3000,
          "attemptsPerOfferedRequest": 1,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.317200000000689,
          "latencyP99Milliseconds": 7.2057999999977085,
          "successLatencyP99Milliseconds": 7.2057999999977085,
          "schedulerLagP99Milliseconds": 1.2536000000000769,
          "attemptsStartedInPhase": 3000
        },
        {
          "name": "slowdown",
          "scheduledStartSeconds": 30,
          "scheduledEndSeconds": 60,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 3000,
          "succeeded": 3000,
          "failed": 0,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 0,
          "downstreamAttempts": 6000,
          "attemptsPerOfferedRequest": 2,
          "attemptsPerAdmittedRequest": 2,
          "latencyP95Milliseconds": 51.91549999999978,
          "latencyP99Milliseconds": 52.29010000000045,
          "successLatencyP99Milliseconds": 52.29010000000045,
          "schedulerLagP99Milliseconds": 1.1075000000033697,
          "attemptsStartedInPhase": 5998
        },
        {
          "name": "outage",
          "scheduledStartSeconds": 60,
          "scheduledEndSeconds": 90,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 79,
          "succeeded": 0,
          "failed": 3000,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 2997,
          "downstreamAttempts": 82,
          "attemptsPerOfferedRequest": 0.027333333333333334,
          "attemptsPerAdmittedRequest": 1.0379746835443038,
          "latencyP95Milliseconds": 1.1128000000013571,
          "latencyP99Milliseconds": 21.279999999990196,
          "successLatencyP99Milliseconds": null,
          "schedulerLagP99Milliseconds": 1.2897999999950116,
          "attemptsStartedInPhase": 84
        },
        {
          "name": "recovery",
          "scheduledStartSeconds": 90,
          "scheduledEndSeconds": 120,
          "offered": 3000,
          "submitted": 3000,
          "admitted": 2961,
          "succeeded": 2961,
          "failed": 39,
          "harnessRejected": 0,
          "concurrencyRejected": 0,
          "circuitRejected": 39,
          "downstreamAttempts": 2961,
          "attemptsPerOfferedRequest": 0.987,
          "attemptsPerAdmittedRequest": 1,
          "latencyP95Milliseconds": 6.248299999995766,
          "latencyP99Milliseconds": 7.076200000000199,
          "successLatencyP99Milliseconds": 7.078599999999824,
          "schedulerLagP99Milliseconds": 1.1883999999895423,
          "attemptsStartedInPhase": 2961
        }
      ]
    }
  ]
}