{
  "suite": "executor-cmp-latency-chart",
  "mode": "equal",
  "canonical": "https://clawql.com/benchmarks/executor-comparison/latency.html",
  "measuredAt": "2026-10-11T00:31:37.146Z",
  "host": {
    "node": "v22.14.0",
    "platform": "linux",
    "arch": "x64"
  },
  "config": {
    "iters": 100,
    "warmup": 10,
    "mock_delay_ms": 0,
    "pet_count": 2,
    "body_bytes": 98,
    "equal_payload": {
      "pets": [
        {
          "id": 1,
          "name": "Ada",
          "status": "available"
        },
        {
          "id": 2,
          "name": "Grace",
          "status": "available"
        }
      ]
    },
    "fields": [
      "pets"
    ],
    "where": null
  },
  "pathFlags": {
    "CLAWQL_TIER": "gateway",
    "CLAWQL_CAPABILITY_LIFECYCLE": "0",
    "CLAWQL_WORM_ENABLED": "unset",
    "panguard_sidecar": false,
    "durable_worm": false,
    "ephemeral_ring_audit": true,
    "hook_registry_pre_call": true,
    "where_and_fields": "fields_only",
    "mode": "equal"
  },
  "workloadTilt": {
    "mode": "equal",
    "clawql": "EQUAL — single MCP execute → tiny same-host mock (2 pets), fields projection only. No search bundle, no where, no WORM, no audit in the timed execute sample.",
    "executor": "EQUAL — single MCP execute returning the same pets JSON in-process (Executor sandbox cannot fetch; logical result matched).",
    "intent": "Apples-to-apples: same result shape, one MCP execute each. Headline uses ClawQL gateway overhead (execute − direct) vs Executor execute."
  },
  "tools": [
    {
      "id": "clawql_execute",
      "source": "live",
      "label": "ClawQL execute (e2e)",
      "workload": "equal",
      "subtitle": "MCP → tiny same-host mock + fields",
      "p50_ms": 1.753,
      "p95_ms": 2.691,
      "p99_ms": 4.159,
      "p999_ms": null,
      "min_ms": 1.28,
      "max_ms": 158.237,
      "n": 100
    },
    {
      "id": "clawql_gateway_overhead",
      "source": "derived",
      "label": "ClawQL gateway overhead",
      "workload": "equalized",
      "subtitle": "execute − direct fetch (apples-to-apples)",
      "p50_ms": 1.341,
      "p95_ms": 2.147,
      "p99_ms": 3.399,
      "p999_ms": null,
      "headline": true
    },
    {
      "id": "executor_execute",
      "source": "live",
      "label": "Executor execute",
      "workload": "equal",
      "subtitle": "live · same pets JSON in-process",
      "p50_ms": 3.032,
      "p95_ms": 5.512,
      "p99_ms": 5.88,
      "p999_ms": null,
      "min_ms": 2.281,
      "max_ms": 7.431,
      "n": 100,
      "endpoint": "stdio:/tmp/executor-try/node_modules/.bin/executor mcp",
      "citation": "Equal arm: MCP execute returns the same pets JSON ClawQL gets from the mock. In-process (Executor has no fetch); ClawQL pays same-host mock HTTP (~subtracted in overhead).",
      "headline": true
    },
    {
      "id": "direct_http",
      "source": "live",
      "label": "Direct HTTP mock",
      "workload": "control",
      "subtitle": "bare fetch of the same tiny body",
      "p50_ms": 0.412,
      "p95_ms": 0.544,
      "p99_ms": 0.76,
      "p999_ms": null,
      "min_ms": 0.321,
      "max_ms": 1.899,
      "n": 100
    },
    {
      "id": "clawql_audit",
      "source": "live",
      "label": "ClawQL audit",
      "workload": "control",
      "subtitle": "local ring append (no upstream)",
      "p50_ms": 0.589,
      "p95_ms": 14.105,
      "p99_ms": 31.184,
      "p999_ms": null,
      "min_ms": 0.287,
      "max_ms": 190.424,
      "n": 100
    }
  ],
  "series": {
    "clawql_execute": {
      "source": "live",
      "label": "ClawQL execute",
      "p50_ms": 1.753,
      "p95_ms": 2.691,
      "p99_ms": 4.159,
      "p999_ms": null,
      "min_ms": 1.28,
      "max_ms": 158.237,
      "n": 100,
      "citation": "MCP stdio → listPets equal tiny mock"
    },
    "clawql_gateway_overhead": {
      "source": "derived",
      "label": "ClawQL gateway overhead",
      "p50_ms": 1.341,
      "p95_ms": 2.147,
      "p99_ms": 3.399,
      "citation": "execute − direct_http (same mock)"
    },
    "clawql_audit": {
      "source": "live",
      "label": "ClawQL audit",
      "p50_ms": 0.589,
      "p95_ms": 14.105,
      "p99_ms": 31.184,
      "p999_ms": null,
      "min_ms": 0.287,
      "max_ms": 190.424,
      "n": 100
    },
    "direct_http": {
      "source": "live",
      "label": "Direct HTTP",
      "p50_ms": 0.412,
      "p95_ms": 0.544,
      "p99_ms": 0.76,
      "p999_ms": null,
      "min_ms": 0.321,
      "max_ms": 1.899,
      "n": 100
    },
    "executor": {
      "id": "executor_execute",
      "source": "live",
      "label": "Executor execute",
      "workload": "equal",
      "subtitle": "live · same pets JSON in-process",
      "p50_ms": 3.032,
      "p95_ms": 5.512,
      "p99_ms": 5.88,
      "p999_ms": null,
      "min_ms": 2.281,
      "max_ms": 7.431,
      "n": 100,
      "endpoint": "stdio:/tmp/executor-try/node_modules/.bin/executor mcp",
      "citation": "Equal arm: MCP execute returns the same pets JSON ClawQL gets from the mock. In-process (Executor has no fetch); ClawQL pays same-host mock HTTP (~subtracted in overhead)."
    }
  },
  "headline": {
    "clawql_p50_ms": 1.341,
    "clawql_p95_ms": 2.147,
    "clawql_p99_ms": 3.399,
    "clawql_p999_ms": null,
    "clawql_arm": "gateway_overhead",
    "clawql_execute_e2e_p50_ms": 1.753,
    "executor_p50_ms": 3.032,
    "executor_p95_ms": 5.512,
    "executor_p99_ms": 5.88,
    "executor_p999_ms": null,
    "ratio_executor_over_clawql": 2.26,
    "ratio_clawql_over_executor": 0.44,
    "executor_source": "live",
    "clawql_faster_p50": true,
    "p50_beats_executor_band_low": true,
    "p99_beats_executor_band_high": true,
    "p999_beats_executor": false
  },
  "honesty": {
    "flamegraphDemo120ms": "Synthetic fixture in clawql-observability demo-mcp-execute — NOT a measured ClawQL p50.",
    "tokenBenchmarks": "docs/benchmarks/executor-comparison/executor-cmp-*.json measure tokens, not wall clock.",
    "equalArms": "Both arms return the same tiny pets JSON via one MCP execute. ClawQL goes through same-host mock HTTP; that cost is subtracted for the equalized overhead metric.",
    "notHeavyTilt": "Previous heavy-tilt chart (800-row where/fields + search/WORM + audit) was retired for this page.",
    "referenceBand": "Do not use UsefulSoftwareCo/executor#1519 50–100ms as measured — wire EXECUTOR_BIN for live.",
    "p99Caveat": "p99 needs adequate n; default iters=100. Still sensitive to rare GC/scheduling spikes.",
    "executorReference": "Executor is LIVE equal-arm MCP execute returning the same pets JSON.",
    "notTokenFlamegraph": "Distinct from /mcp-ui/trace/compare/executor (token context). This page is wall-clock ms.",
    "p99VsExecutor": "Equalized ClawQL gateway overhead p50 1.341ms beats live Executor p50 3.032ms on the same result shape."
  }
}
