From c46dc4c691f46f5b551ef3cddc82d17f7596ed76 Mon Sep 17 00:00:00 2001 From: spybrhy Date: Wed, 27 May 2026 06:39:22 +0300 Subject: [PATCH 1/3] Add API benchmark suite --- benchmarks/.env.benchmark.example | 7 + benchmarks/README.md | 25 ++ benchmarks/results/latest.json | 706 ++++++++++++++++++++++++++++++ benchmarks/results/latest.md | 31 ++ benchmarks/run-api-benchmarks.mjs | 253 +++++++++++ benchmarks/scenarios.mjs | 102 +++++ benchmarks/thresholds.json | 12 + package.json | 2 + 8 files changed, 1138 insertions(+) create mode 100644 benchmarks/.env.benchmark.example create mode 100644 benchmarks/README.md create mode 100644 benchmarks/results/latest.json create mode 100644 benchmarks/results/latest.md create mode 100644 benchmarks/run-api-benchmarks.mjs create mode 100644 benchmarks/scenarios.mjs create mode 100644 benchmarks/thresholds.json diff --git a/benchmarks/.env.benchmark.example b/benchmarks/.env.benchmark.example new file mode 100644 index 0000000000..c26fb5f217 --- /dev/null +++ b/benchmarks/.env.benchmark.example @@ -0,0 +1,7 @@ +BENCHMARK_TARGET_URL= +BENCHMARK_AUTH_TOKEN= +BENCHMARK_ITERATIONS=20 +BENCHMARK_CONCURRENCY=4 +BENCHMARK_P99_THRESHOLD_MS=500 +BENCHMARK_ERROR_RATE_THRESHOLD=0 +JWT_SECRET=development-secret diff --git a/benchmarks/README.md b/benchmarks/README.md new file mode 100644 index 0000000000..a7d13d62bd --- /dev/null +++ b/benchmarks/README.md @@ -0,0 +1,25 @@ +# API Benchmarks + +Run a reproducible benchmark against the local Express API or an external target. + +```bash +npm run benchmark +npm run benchmark:smoke +``` + +Configuration can be supplied with environment variables. Copy `.env.benchmark.example` +when running outside the default local setup. + +- `BENCHMARK_TARGET_URL`: target host. When omitted, the runner starts the local API. +- `BENCHMARK_AUTH_TOKEN`: bearer token for protected routes. When omitted, a local admin token is generated. +- `BENCHMARK_ITERATIONS`: requests per endpoint for the full suite. +- `BENCHMARK_CONCURRENCY`: concurrent workers per endpoint. +- `BENCHMARK_P99_THRESHOLD_MS`: default p99 latency ceiling. +- `BENCHMARK_ERROR_RATE_THRESHOLD`: default allowed error rate percentage. + +Results are written to: + +- `benchmarks/results/latest.json` +- `benchmarks/results/latest.md` + +The smoke mode lowers request volume while still covering every configured endpoint. diff --git a/benchmarks/results/latest.json b/benchmarks/results/latest.json new file mode 100644 index 0000000000..5067528ab1 --- /dev/null +++ b/benchmarks/results/latest.json @@ -0,0 +1,706 @@ +{ + "generatedAt": "2026-05-27T03:36:36.599Z", + "mode": "smoke", + "target": "local Express app", + "options": { + "iterations": 3, + "concurrency": 1 + }, + "summaries": [ + { + "name": "health", + "method": "GET", + "path": "/health", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 173.57, + "peakRps": 3, + "latencyMs": { + "p50": 1.19, + "p95": 15.42, + "p99": 15.42 + }, + "ttfbMs": { + "p50": 1.12, + "p95": 15, + "p99": 15 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "auth register", + "method": "POST", + "path": "/api/auth/register", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 513.67, + "peakRps": 3, + "latencyMs": { + "p50": 0.85, + "p95": 4.32, + "p99": 4.32 + }, + "ttfbMs": { + "p50": 0.8, + "p95": 4.26, + "p99": 4.26 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "auth login", + "method": "POST", + "path": "/api/auth/login", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 1803.2, + "peakRps": 3, + "latencyMs": { + "p50": 0.52, + "p95": 0.59, + "p99": 0.59 + }, + "ttfbMs": { + "p50": 0.49, + "p95": 0.55, + "p99": 0.55 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "auth oauth callback", + "method": "GET", + "path": "/api/auth/oauth/github/callback", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 2537, + "peakRps": 3, + "latencyMs": { + "p50": 0.34, + "p95": 0.54, + "p99": 0.54 + }, + "ttfbMs": { + "p50": 0.3, + "p95": 0.5, + "p99": 0.5 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "auth refresh", + "method": "POST", + "path": "/api/auth/refresh", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 2515.2, + "peakRps": 3, + "latencyMs": { + "p50": 0.39, + "p95": 0.41, + "p99": 0.41 + }, + "ttfbMs": { + "p50": 0.36, + "p95": 0.38, + "p99": 0.38 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "users list", + "method": "GET", + "path": "/api/users", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.22, + "p95": 0.24, + "p99": 0.24 + }, + "ttfbMs": { + "p50": 0.2, + "p95": 0.22, + "p99": 0.22 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "users create", + "method": "POST", + "path": "/api/users", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 2883.58, + "peakRps": 3, + "latencyMs": { + "p50": 0.35, + "p95": 0.37, + "p99": 0.37 + }, + "ttfbMs": { + "p50": 0.33, + "p95": 0.35, + "p99": 0.35 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "jobs list", + "method": "GET", + "path": "/api/jobs", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.28, + "p95": 0.29, + "p99": 0.29 + }, + "ttfbMs": { + "p50": 0.25, + "p95": 0.26, + "p99": 0.26 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "jobs create", + "method": "POST", + "path": "/api/jobs", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 2627.45, + "peakRps": 3, + "latencyMs": { + "p50": 0.34, + "p95": 0.49, + "p99": 0.49 + }, + "ttfbMs": { + "p50": 0.3, + "p95": 0.46, + "p99": 0.46 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "proposals list", + "method": "GET", + "path": "/api/proposals", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.2, + "p95": 0.21, + "p99": 0.21 + }, + "ttfbMs": { + "p50": 0.18, + "p95": 0.19, + "p99": 0.19 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "proposals create", + "method": "POST", + "path": "/api/proposals", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.29, + "p95": 0.31, + "p99": 0.31 + }, + "ttfbMs": { + "p50": 0.27, + "p95": 0.29, + "p99": 0.29 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "payments create", + "method": "POST", + "path": "/api/payments", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.25, + "p95": 0.27, + "p99": 0.27 + }, + "ttfbMs": { + "p50": 0.24, + "p95": 0.24, + "p99": 0.24 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "reviews list", + "method": "GET", + "path": "/api/reviews", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.23, + "p95": 0.23, + "p99": 0.23 + }, + "ttfbMs": { + "p50": 0.21, + "p95": 0.21, + "p99": 0.21 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "reviews create", + "method": "POST", + "path": "/api/reviews", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.25, + "p95": 0.25, + "p99": 0.25 + }, + "ttfbMs": { + "p50": 0.23, + "p95": 0.23, + "p99": 0.23 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "messages list", + "method": "GET", + "path": "/api/messages", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.21, + "p95": 0.22, + "p99": 0.22 + }, + "ttfbMs": { + "p50": 0.19, + "p95": 0.2, + "p99": 0.2 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "messages create", + "method": "POST", + "path": "/api/messages", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 2116.28, + "peakRps": 3, + "latencyMs": { + "p50": 0.4, + "p95": 0.66, + "p99": 0.66 + }, + "ttfbMs": { + "p50": 0.38, + "p95": 0.63, + "p99": 0.63 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "notifications list", + "method": "GET", + "path": "/api/notifications", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.21, + "p95": 0.22, + "p99": 0.22 + }, + "ttfbMs": { + "p50": 0.2, + "p95": 0.2, + "p99": 0.2 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "notifications create", + "method": "POST", + "path": "/api/notifications", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.24, + "p95": 0.25, + "p99": 0.25 + }, + "ttfbMs": { + "p50": 0.22, + "p95": 0.23, + "p99": 0.23 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "uploads create", + "method": "POST", + "path": "/api/uploads", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 976.06, + "peakRps": 3, + "latencyMs": { + "p50": 0.48, + "p95": 1.98, + "p99": 1.98 + }, + "ttfbMs": { + "p50": 0.45, + "p95": 1.96, + "p99": 1.96 + }, + "statuses": { + "201": 3 + } + }, + { + "name": "search query", + "method": "GET", + "path": "/api/search?q=freelance", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 3000, + "peakRps": 3, + "latencyMs": { + "p50": 0.24, + "p95": 0.52, + "p99": 0.52 + }, + "ttfbMs": { + "p50": 0.22, + "p95": 0.5, + "p99": 0.5 + }, + "statuses": { + "200": 3 + } + }, + { + "name": "admin metrics", + "method": "GET", + "path": "/api/admin/metrics", + "requests": 3, + "errors": 0, + "errorRatePct": 0, + "sustainedRps": 2700.37, + "peakRps": 3, + "latencyMs": { + "p50": 0.28, + "p95": 0.55, + "p99": 0.55 + }, + "ttfbMs": { + "p50": 0.26, + "p95": 0.53, + "p99": 0.53 + }, + "statuses": { + "200": 3 + } + } + ], + "gates": [ + { + "name": "health", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 15.42, + "errorRatePct": 0 + }, + { + "name": "auth register", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 4.32, + "errorRatePct": 0 + }, + { + "name": "auth login", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.59, + "errorRatePct": 0 + }, + { + "name": "auth oauth callback", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.54, + "errorRatePct": 0 + }, + { + "name": "auth refresh", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.41, + "errorRatePct": 0 + }, + { + "name": "users list", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.24, + "errorRatePct": 0 + }, + { + "name": "users create", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.37, + "errorRatePct": 0 + }, + { + "name": "jobs list", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.29, + "errorRatePct": 0 + }, + { + "name": "jobs create", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.49, + "errorRatePct": 0 + }, + { + "name": "proposals list", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.21, + "errorRatePct": 0 + }, + { + "name": "proposals create", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.31, + "errorRatePct": 0 + }, + { + "name": "payments create", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.27, + "errorRatePct": 0 + }, + { + "name": "reviews list", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.23, + "errorRatePct": 0 + }, + { + "name": "reviews create", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.25, + "errorRatePct": 0 + }, + { + "name": "messages list", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.22, + "errorRatePct": 0 + }, + { + "name": "messages create", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.66, + "errorRatePct": 0 + }, + { + "name": "notifications list", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.22, + "errorRatePct": 0 + }, + { + "name": "notifications create", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.25, + "errorRatePct": 0 + }, + { + "name": "uploads create", + "passed": true, + "threshold": { + "p99LatencyMs": 750, + "errorRatePct": 0 + }, + "p99LatencyMs": 1.98, + "errorRatePct": 0 + }, + { + "name": "search query", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.52, + "errorRatePct": 0 + }, + { + "name": "admin metrics", + "passed": true, + "threshold": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "p99LatencyMs": 0.55, + "errorRatePct": 0 + } + ] +} diff --git a/benchmarks/results/latest.md b/benchmarks/results/latest.md new file mode 100644 index 0000000000..5016c533ee --- /dev/null +++ b/benchmarks/results/latest.md @@ -0,0 +1,31 @@ +# API Benchmark Summary + +Mode: smoke +Target: local Express app +Generated: 2026-05-27T03:36:36.599Z +Iterations per endpoint: 3 +Concurrency per endpoint: 1 + +| Endpoint | Method | Requests | Error % | Sustained RPS | p50 | p95 | p99 | TTFB p95 | Gate | +| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | +| health | GET /health | 3 | 0 | 173.57 | 1.19 ms | 15.42 ms | 15.42 ms | 15 ms | pass | +| auth register | POST /api/auth/register | 3 | 0 | 513.67 | 0.85 ms | 4.32 ms | 4.32 ms | 4.26 ms | pass | +| auth login | POST /api/auth/login | 3 | 0 | 1803.2 | 0.52 ms | 0.59 ms | 0.59 ms | 0.55 ms | pass | +| auth oauth callback | GET /api/auth/oauth/github/callback | 3 | 0 | 2537 | 0.34 ms | 0.54 ms | 0.54 ms | 0.5 ms | pass | +| auth refresh | POST /api/auth/refresh | 3 | 0 | 2515.2 | 0.39 ms | 0.41 ms | 0.41 ms | 0.38 ms | pass | +| users list | GET /api/users | 3 | 0 | 3000 | 0.22 ms | 0.24 ms | 0.24 ms | 0.22 ms | pass | +| users create | POST /api/users | 3 | 0 | 2883.58 | 0.35 ms | 0.37 ms | 0.37 ms | 0.35 ms | pass | +| jobs list | GET /api/jobs | 3 | 0 | 3000 | 0.28 ms | 0.29 ms | 0.29 ms | 0.26 ms | pass | +| jobs create | POST /api/jobs | 3 | 0 | 2627.45 | 0.34 ms | 0.49 ms | 0.49 ms | 0.46 ms | pass | +| proposals list | GET /api/proposals | 3 | 0 | 3000 | 0.2 ms | 0.21 ms | 0.21 ms | 0.19 ms | pass | +| proposals create | POST /api/proposals | 3 | 0 | 3000 | 0.29 ms | 0.31 ms | 0.31 ms | 0.29 ms | pass | +| payments create | POST /api/payments | 3 | 0 | 3000 | 0.25 ms | 0.27 ms | 0.27 ms | 0.24 ms | pass | +| reviews list | GET /api/reviews | 3 | 0 | 3000 | 0.23 ms | 0.23 ms | 0.23 ms | 0.21 ms | pass | +| reviews create | POST /api/reviews | 3 | 0 | 3000 | 0.25 ms | 0.25 ms | 0.25 ms | 0.23 ms | pass | +| messages list | GET /api/messages | 3 | 0 | 3000 | 0.21 ms | 0.22 ms | 0.22 ms | 0.2 ms | pass | +| messages create | POST /api/messages | 3 | 0 | 2116.28 | 0.4 ms | 0.66 ms | 0.66 ms | 0.63 ms | pass | +| notifications list | GET /api/notifications | 3 | 0 | 3000 | 0.21 ms | 0.22 ms | 0.22 ms | 0.2 ms | pass | +| notifications create | POST /api/notifications | 3 | 0 | 3000 | 0.24 ms | 0.25 ms | 0.25 ms | 0.23 ms | pass | +| uploads create | POST /api/uploads | 3 | 0 | 976.06 | 0.48 ms | 1.98 ms | 1.98 ms | 1.96 ms | pass | +| search query | GET /api/search?q=freelance | 3 | 0 | 3000 | 0.24 ms | 0.52 ms | 0.52 ms | 0.5 ms | pass | +| admin metrics | GET /api/admin/metrics | 3 | 0 | 2700.37 | 0.28 ms | 0.55 ms | 0.55 ms | 0.53 ms | pass | diff --git a/benchmarks/run-api-benchmarks.mjs b/benchmarks/run-api-benchmarks.mjs new file mode 100644 index 0000000000..5248e81293 --- /dev/null +++ b/benchmarks/run-api-benchmarks.mjs @@ -0,0 +1,253 @@ +#!/usr/bin/env node +import { mkdir, readFile, writeFile } from "node:fs/promises"; +import { performance } from "node:perf_hooks"; +import { createApp } from "../apps/api/src/app.js"; +import { signAccessToken } from "../apps/api/src/utils/jwt.js"; +import { createScenarios } from "./scenarios.mjs"; + +const ROOT = new URL("..", import.meta.url); +const RESULTS_DIR = new URL("benchmarks/results/", ROOT); +const THRESHOLDS_FILE = new URL("benchmarks/thresholds.json", ROOT); +const isSmoke = process.argv.includes("--smoke") || process.env.BENCHMARK_SMOKE === "1"; + +function readNumber(name, fallback) { + const value = Number(process.env[name]); + return Number.isFinite(value) && value > 0 ? value : fallback; +} + +function readNonNegativeNumber(name, fallback) { + const value = Number(process.env[name]); + return Number.isFinite(value) && value >= 0 ? value : fallback; +} + +function percentile(values, pct) { + if (values.length === 0) { + return 0; + } + + const sorted = [...values].sort((a, b) => a - b); + const index = Math.min(sorted.length - 1, Math.ceil((pct / 100) * sorted.length) - 1); + return sorted[index]; +} + +function round(value, digits = 2) { + return Number(value.toFixed(digits)); +} + +async function startLocalServer() { + const app = createApp(); + const server = app.listen(0, "127.0.0.1"); + + await new Promise((resolve, reject) => { + server.once("listening", resolve); + server.once("error", reject); + }); + + const { port } = server.address(); + return { + baseUrl: `http://127.0.0.1:${port}`, + close: () => new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve()))) + }; +} + +async function requestOnce(baseUrl, scenario, index) { + const url = new URL(scenario.path, baseUrl); + const headers = { ...(scenario.headers ?? {}) }; + const init = { method: scenario.method, headers }; + if (scenario.json) { + init.body = JSON.stringify(scenario.json(index)); + } + if (scenario.formData) { + init.body = scenario.formData(index); + } + + const start = performance.now(); + let response; + let ttfbMs; + let body = ""; + let error; + + try { + response = await fetch(url, init); + ttfbMs = performance.now() - start; + body = await response.text(); + } catch (caught) { + error = caught; + ttfbMs = performance.now() - start; + } + + const latencyMs = performance.now() - start; + const status = response?.status ?? 0; + const ok = Boolean(response?.ok); + + return { + status, + ok, + startedAtMs: start, + latencyMs, + ttfbMs, + bytes: Buffer.byteLength(body), + error: error?.message + }; +} + +async function runScenario(baseUrl, scenario, options) { + const total = options.iterations; + const concurrency = Math.min(options.concurrency, total); + let cursor = 0; + const results = []; + const startedAt = performance.now(); + + async function worker() { + while (cursor < total) { + const current = cursor; + cursor += 1; + results.push(await requestOnce(baseUrl, scenario, current)); + } + } + + await Promise.all(Array.from({ length: concurrency }, worker)); + const durationMs = performance.now() - startedAt; + const latencies = results.map((result) => result.latencyMs); + const ttfb = results.map((result) => result.ttfbMs); + const errors = results.filter((result) => !result.ok).length; + + return { + name: scenario.name, + method: scenario.method, + path: scenario.path, + requests: results.length, + errors, + errorRatePct: round((errors / Math.max(results.length, 1)) * 100), + sustainedRps: round(results.length / Math.max(durationMs / 1000, 0.001)), + peakRps: round(Math.max(...chunkedRps(results), 0)), + latencyMs: { + p50: round(percentile(latencies, 50)), + p95: round(percentile(latencies, 95)), + p99: round(percentile(latencies, 99)) + }, + ttfbMs: { + p50: round(percentile(ttfb, 50)), + p95: round(percentile(ttfb, 95)), + p99: round(percentile(ttfb, 99)) + }, + statuses: summarizeStatuses(results), + sampleError: results.find((result) => result.error)?.error + }; +} + +function chunkedRps(results) { + const firstStart = Math.min(...results.map((result) => result.startedAtMs)); + const buckets = new Map(); + for (const result of results) { + const bucket = Math.floor((result.startedAtMs - firstStart) / 1000); + buckets.set(bucket, (buckets.get(bucket) ?? 0) + 1); + } + return [...buckets.values()]; +} + +function summarizeStatuses(results) { + const counts = {}; + for (const result of results) { + counts[result.status] = (counts[result.status] ?? 0) + 1; + } + return counts; +} + +function thresholdFor(thresholds, name) { + return { + ...thresholds.defaults, + ...(thresholds.endpoints?.[name] ?? {}) + }; +} + +function evaluateThresholds(summaries, thresholds) { + return summaries.map((summary) => { + const threshold = thresholdFor(thresholds, summary.name); + return { + name: summary.name, + passed: + summary.latencyMs.p99 <= threshold.p99LatencyMs && + summary.errorRatePct <= threshold.errorRatePct, + threshold, + p99LatencyMs: summary.latencyMs.p99, + errorRatePct: summary.errorRatePct + }; + }); +} + +function renderMarkdown(report) { + const lines = [ + "# API Benchmark Summary", + "", + `Mode: ${report.mode}`, + `Target: ${report.target}`, + `Generated: ${report.generatedAt}`, + `Iterations per endpoint: ${report.options.iterations}`, + `Concurrency per endpoint: ${report.options.concurrency}`, + "", + "| Endpoint | Method | Requests | Error % | Sustained RPS | p50 | p95 | p99 | TTFB p95 | Gate |", + "| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |" + ]; + + for (const summary of report.summaries) { + const gate = report.gates.find((item) => item.name === summary.name); + lines.push( + `| ${summary.name} | ${summary.method} ${summary.path} | ${summary.requests} | ${summary.errorRatePct} | ${summary.sustainedRps} | ${summary.latencyMs.p50} ms | ${summary.latencyMs.p95} ms | ${summary.latencyMs.p99} ms | ${summary.ttfbMs.p95} ms | ${gate?.passed ? "pass" : "fail"} |` + ); + } + + return `${lines.join("\n")}\n`; +} + +async function main() { + const localServer = process.env.BENCHMARK_TARGET_URL ? null : await startLocalServer(); + const baseUrl = process.env.BENCHMARK_TARGET_URL ?? localServer.baseUrl; + const authToken = process.env.BENCHMARK_AUTH_TOKEN ?? signAccessToken({ sub: "usr_benchmark_admin", role: "admin" }); + const options = { + iterations: isSmoke ? 3 : readNumber("BENCHMARK_ITERATIONS", 20), + concurrency: isSmoke ? 1 : readNumber("BENCHMARK_CONCURRENCY", 4) + }; + + try { + const scenarios = createScenarios({ authToken }); + const thresholds = JSON.parse(await readFile(THRESHOLDS_FILE, "utf8")); + thresholds.defaults.p99LatencyMs = readNumber("BENCHMARK_P99_THRESHOLD_MS", thresholds.defaults.p99LatencyMs); + thresholds.defaults.errorRatePct = readNonNegativeNumber( + "BENCHMARK_ERROR_RATE_THRESHOLD", + thresholds.defaults.errorRatePct + ); + const summaries = []; + + for (const scenario of scenarios) { + summaries.push(await runScenario(baseUrl, scenario, options)); + } + + const gates = evaluateThresholds(summaries, thresholds); + const report = { + generatedAt: new Date().toISOString(), + mode: isSmoke ? "smoke" : "full", + target: process.env.BENCHMARK_TARGET_URL ? baseUrl : "local Express app", + options, + summaries, + gates + }; + + await mkdir(RESULTS_DIR, { recursive: true }); + await writeFile(new URL("latest.json", RESULTS_DIR), `${JSON.stringify(report, null, 2)}\n`); + await writeFile(new URL("latest.md", RESULTS_DIR), renderMarkdown(report)); + + const failed = gates.filter((gate) => !gate.passed); + if (failed.length > 0) { + console.error(`Benchmark threshold failures: ${failed.map((gate) => gate.name).join(", ")}`); + process.exitCode = 1; + } + } finally { + await localServer?.close(); + } +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/benchmarks/scenarios.mjs b/benchmarks/scenarios.mjs new file mode 100644 index 0000000000..52067bd9e4 --- /dev/null +++ b/benchmarks/scenarios.mjs @@ -0,0 +1,102 @@ +export function createScenarios({ authToken }) { + const json = { "content-type": "application/json" }; + const auth = { authorization: `Bearer ${authToken}` }; + + return [ + { name: "health", method: "GET", path: "/health" }, + { + name: "auth register", + method: "POST", + path: "/api/auth/register", + headers: json, + json: (i) => ({ + email: `bench-register-${i}@example.com`, + password: "benchmark-password", + role: "client" + }) + }, + { + name: "auth login", + method: "POST", + path: "/api/auth/login", + headers: json, + json: () => ({ email: "bench-login@example.com", password: "benchmark-password" }) + }, + { name: "auth oauth callback", method: "GET", path: "/api/auth/oauth/github/callback" }, + { name: "auth refresh", method: "POST", path: "/api/auth/refresh", headers: json, json: () => ({}) }, + { name: "users list", method: "GET", path: "/api/users" }, + { + name: "users create", + method: "POST", + path: "/api/users", + headers: json, + json: (i) => ({ email: `bench-user-${i}@example.com`, role: "freelancer", status: "active" }) + }, + { name: "jobs list", method: "GET", path: "/api/jobs" }, + { + name: "jobs create", + method: "POST", + path: "/api/jobs", + headers: json, + json: (i) => ({ + title: `Benchmark job ${i}`, + description: "Synthetic benchmark job payload for API load testing.", + budgetMin: 500, + budgetMax: 2500, + categoryId: "cat_web", + skills: ["node", "api", "testing"] + }) + }, + { name: "proposals list", method: "GET", path: "/api/proposals" }, + { + name: "proposals create", + method: "POST", + path: "/api/proposals", + headers: json, + json: (i) => ({ jobId: `job_${i}`, freelancerId: "usr_benchmark", bidAmount: 1200, coverLetter: "Benchmark proposal" }) + }, + { + name: "payments create", + method: "POST", + path: "/api/payments", + headers: json, + json: () => ({ amount: 1299, currency: "usd", metadata: { source: "benchmark" } }) + }, + { name: "reviews list", method: "GET", path: "/api/reviews" }, + { + name: "reviews create", + method: "POST", + path: "/api/reviews", + headers: json, + json: (i) => ({ jobId: `job_${i}`, rating: 5, comment: "Benchmark review" }) + }, + { name: "messages list", method: "GET", path: "/api/messages" }, + { + name: "messages create", + method: "POST", + path: "/api/messages", + headers: json, + json: (i) => ({ conversationId: `conv_${i}`, senderId: "usr_benchmark", body: "Benchmark message body" }) + }, + { name: "notifications list", method: "GET", path: "/api/notifications" }, + { + name: "notifications create", + method: "POST", + path: "/api/notifications", + headers: json, + json: (i) => ({ userId: `usr_${i}`, type: "benchmark", message: "Benchmark notification" }) + }, + { + name: "uploads create", + method: "POST", + path: "/api/uploads", + formData: () => { + const body = new FormData(); + body.append("file", new Blob(["benchmark upload payload"], { type: "text/plain" }), "benchmark.txt"); + return body; + } + }, + { name: "search query", method: "GET", path: "/api/search?q=freelance" }, + { name: "admin metrics", method: "GET", path: "/api/admin/metrics", headers: auth } + ]; +} diff --git a/benchmarks/thresholds.json b/benchmarks/thresholds.json new file mode 100644 index 0000000000..105ff47138 --- /dev/null +++ b/benchmarks/thresholds.json @@ -0,0 +1,12 @@ +{ + "defaults": { + "p99LatencyMs": 500, + "errorRatePct": 0 + }, + "endpoints": { + "uploads create": { + "p99LatencyMs": 750, + "errorRatePct": 0 + } + } +} diff --git a/package.json b/package.json index 675e6e69d3..0cff9eb39b 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ ], "scripts": { "build": "echo \"Run package-specific builds (e.g. npm run build -w apps/web)\"", + "benchmark": "node benchmarks/run-api-benchmarks.mjs", + "benchmark:smoke": "node benchmarks/run-api-benchmarks.mjs --smoke", "lint": "echo \"No root lint configured\"", "test": "npm run test -w apps/api" } From 3cc4fa3573ee65f01cfd98df91e8c8e875804ce8 Mon Sep 17 00:00:00 2001 From: spybrhy Date: Wed, 27 May 2026 11:23:21 +0300 Subject: [PATCH 2/3] Add API benchmark smoke workflow --- .github/workflows/api-benchmark-smoke.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/api-benchmark-smoke.yml diff --git a/.github/workflows/api-benchmark-smoke.yml b/.github/workflows/api-benchmark-smoke.yml new file mode 100644 index 0000000000..a4da61ed67 --- /dev/null +++ b/.github/workflows/api-benchmark-smoke.yml @@ -0,0 +1,23 @@ +name: API Benchmark Smoke + +on: + pull_request: + paths: + - "apps/api/**" + - "benchmarks/**" + - "package.json" + - "package-lock.json" + - ".github/workflows/api-benchmark-smoke.yml" + +jobs: + smoke: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + cache: npm + - run: npm ci + - run: npm run benchmark:smoke From 6f0191a17b1171250b33b3e54f457230dccf42f9 Mon Sep 17 00:00:00 2001 From: spybrhy Date: Wed, 27 May 2026 15:55:30 +0300 Subject: [PATCH 3/3] Add API benchmark demo proof --- benchmarks/results/latest.json | 250 ++++++++++++------------- benchmarks/results/latest.md | 40 ++-- demos/api-benchmark-smoke-demo.mp4 | Bin 0 -> 59049 bytes demos/api-benchmark-smoke-demo.svg | 11 ++ demos/api-benchmark-smoke-demo.svg.png | Bin 0 -> 166351 bytes 5 files changed, 156 insertions(+), 145 deletions(-) create mode 100644 demos/api-benchmark-smoke-demo.mp4 create mode 100644 demos/api-benchmark-smoke-demo.svg create mode 100644 demos/api-benchmark-smoke-demo.svg.png diff --git a/benchmarks/results/latest.json b/benchmarks/results/latest.json index 5067528ab1..833cb319cf 100644 --- a/benchmarks/results/latest.json +++ b/benchmarks/results/latest.json @@ -1,5 +1,5 @@ { - "generatedAt": "2026-05-27T03:36:36.599Z", + "generatedAt": "2026-05-27T08:23:05.133Z", "mode": "smoke", "target": "local Express app", "options": { @@ -14,17 +14,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 173.57, + "sustainedRps": 174.67, "peakRps": 3, "latencyMs": { - "p50": 1.19, - "p95": 15.42, - "p99": 15.42 + "p50": 1.35, + "p95": 15.13, + "p99": 15.13 }, "ttfbMs": { - "p50": 1.12, - "p95": 15, - "p99": 15 + "p50": 1.28, + "p95": 14.67, + "p99": 14.67 }, "statuses": { "200": 3 @@ -37,17 +37,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 513.67, + "sustainedRps": 425.88, "peakRps": 3, "latencyMs": { - "p50": 0.85, - "p95": 4.32, - "p99": 4.32 + "p50": 0.84, + "p95": 5.54, + "p99": 5.54 }, "ttfbMs": { - "p50": 0.8, - "p95": 4.26, - "p99": 4.26 + "p50": 0.79, + "p95": 5.48, + "p99": 5.48 }, "statuses": { "201": 3 @@ -60,17 +60,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 1803.2, + "sustainedRps": 1850.57, "peakRps": 3, "latencyMs": { - "p50": 0.52, - "p95": 0.59, - "p99": 0.59 + "p50": 0.51, + "p95": 0.58, + "p99": 0.58 }, "ttfbMs": { - "p50": 0.49, - "p95": 0.55, - "p99": 0.55 + "p50": 0.47, + "p95": 0.54, + "p99": 0.54 }, "statuses": { "200": 3 @@ -83,15 +83,15 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 2537, + "sustainedRps": 2566.93, "peakRps": 3, "latencyMs": { "p50": 0.34, - "p95": 0.54, - "p99": 0.54 + "p95": 0.53, + "p99": 0.53 }, "ttfbMs": { - "p50": 0.3, + "p50": 0.28, "p95": 0.5, "p99": 0.5 }, @@ -106,17 +106,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 2515.2, + "sustainedRps": 2546.33, "peakRps": 3, "latencyMs": { - "p50": 0.39, - "p95": 0.41, - "p99": 0.41 + "p50": 0.4, + "p95": 0.4, + "p99": 0.4 }, "ttfbMs": { - "p50": 0.36, - "p95": 0.38, - "p99": 0.38 + "p50": 0.37, + "p95": 0.37, + "p99": 0.37 }, "statuses": { "200": 3 @@ -132,14 +132,14 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.22, - "p95": 0.24, - "p99": 0.24 + "p50": 0.3, + "p95": 0.31, + "p99": 0.31 }, "ttfbMs": { - "p50": 0.2, - "p95": 0.22, - "p99": 0.22 + "p50": 0.26, + "p95": 0.29, + "p99": 0.29 }, "statuses": { "200": 3 @@ -152,17 +152,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 2883.58, + "sustainedRps": 2578.89, "peakRps": 3, "latencyMs": { - "p50": 0.35, - "p95": 0.37, - "p99": 0.37 + "p50": 0.37, + "p95": 0.45, + "p99": 0.45 }, "ttfbMs": { - "p50": 0.33, - "p95": 0.35, - "p99": 0.35 + "p50": 0.34, + "p95": 0.42, + "p99": 0.42 }, "statuses": { "201": 3 @@ -178,12 +178,12 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.28, + "p50": 0.27, "p95": 0.29, "p99": 0.29 }, "ttfbMs": { - "p50": 0.25, + "p50": 0.24, "p95": 0.26, "p99": 0.26 }, @@ -198,17 +198,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 2627.45, + "sustainedRps": 2482.67, "peakRps": 3, "latencyMs": { - "p50": 0.34, - "p95": 0.49, - "p99": 0.49 + "p50": 0.36, + "p95": 0.48, + "p99": 0.48 }, "ttfbMs": { - "p50": 0.3, - "p95": 0.46, - "p99": 0.46 + "p50": 0.33, + "p95": 0.45, + "p99": 0.45 }, "statuses": { "201": 3 @@ -224,14 +224,14 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.2, - "p95": 0.21, - "p99": 0.21 + "p50": 0.19, + "p95": 0.23, + "p99": 0.23 }, "ttfbMs": { - "p50": 0.18, - "p95": 0.19, - "p99": 0.19 + "p50": 0.17, + "p95": 0.21, + "p99": 0.21 }, "statuses": { "200": 3 @@ -244,17 +244,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 3000, + "sustainedRps": 2769.12, "peakRps": 3, "latencyMs": { - "p50": 0.29, - "p95": 0.31, - "p99": 0.31 + "p50": 0.36, + "p95": 0.39, + "p99": 0.39 }, "ttfbMs": { - "p50": 0.27, - "p95": 0.29, - "p99": 0.29 + "p50": 0.32, + "p95": 0.37, + "p99": 0.37 }, "statuses": { "201": 3 @@ -270,14 +270,14 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.25, - "p95": 0.27, - "p99": 0.27 + "p50": 0.31, + "p95": 0.33, + "p99": 0.33 }, "ttfbMs": { - "p50": 0.24, - "p95": 0.24, - "p99": 0.24 + "p50": 0.28, + "p95": 0.31, + "p99": 0.31 }, "statuses": { "201": 3 @@ -293,14 +293,14 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.23, - "p95": 0.23, - "p99": 0.23 + "p50": 0.2, + "p95": 0.25, + "p99": 0.25 }, "ttfbMs": { - "p50": 0.21, - "p95": 0.21, - "p99": 0.21 + "p50": 0.19, + "p95": 0.23, + "p99": 0.23 }, "statuses": { "200": 3 @@ -339,9 +339,9 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.21, - "p95": 0.22, - "p99": 0.22 + "p50": 0.2, + "p95": 0.21, + "p99": 0.21 }, "ttfbMs": { "p50": 0.19, @@ -359,18 +359,18 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 2116.28, + "sustainedRps": 2215.25, "peakRps": 3, "latencyMs": { - "p50": 0.4, - "p95": 0.66, - "p99": 0.66 - }, - "ttfbMs": { - "p50": 0.38, + "p50": 0.41, "p95": 0.63, "p99": 0.63 }, + "ttfbMs": { + "p50": 0.4, + "p95": 0.61, + "p99": 0.61 + }, "statuses": { "201": 3 } @@ -385,14 +385,14 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.21, + "p50": 0.22, "p95": 0.22, "p99": 0.22 }, "ttfbMs": { - "p50": 0.2, - "p95": 0.2, - "p99": 0.2 + "p50": 0.21, + "p95": 0.21, + "p99": 0.21 }, "statuses": { "200": 3 @@ -408,14 +408,14 @@ "sustainedRps": 3000, "peakRps": 3, "latencyMs": { - "p50": 0.24, - "p95": 0.25, - "p99": 0.25 + "p50": 0.26, + "p95": 0.26, + "p99": 0.26 }, "ttfbMs": { - "p50": 0.22, - "p95": 0.23, - "p99": 0.23 + "p50": 0.24, + "p95": 0.24, + "p99": 0.24 }, "statuses": { "201": 3 @@ -428,17 +428,17 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 976.06, + "sustainedRps": 931.33, "peakRps": 3, "latencyMs": { - "p50": 0.48, - "p95": 1.98, - "p99": 1.98 + "p50": 0.5, + "p95": 2.09, + "p99": 2.09 }, "ttfbMs": { - "p50": 0.45, - "p95": 1.96, - "p99": 1.96 + "p50": 0.48, + "p95": 2.07, + "p99": 2.07 }, "statuses": { "201": 3 @@ -459,7 +459,7 @@ "p99": 0.52 }, "ttfbMs": { - "p50": 0.22, + "p50": 0.23, "p95": 0.5, "p99": 0.5 }, @@ -474,7 +474,7 @@ "requests": 3, "errors": 0, "errorRatePct": 0, - "sustainedRps": 2700.37, + "sustainedRps": 2732.86, "peakRps": 3, "latencyMs": { "p50": 0.28, @@ -499,7 +499,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 15.42, + "p99LatencyMs": 15.13, "errorRatePct": 0 }, { @@ -509,7 +509,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 4.32, + "p99LatencyMs": 5.54, "errorRatePct": 0 }, { @@ -519,7 +519,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.59, + "p99LatencyMs": 0.58, "errorRatePct": 0 }, { @@ -529,7 +529,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.54, + "p99LatencyMs": 0.53, "errorRatePct": 0 }, { @@ -539,7 +539,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.41, + "p99LatencyMs": 0.4, "errorRatePct": 0 }, { @@ -549,7 +549,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.24, + "p99LatencyMs": 0.31, "errorRatePct": 0 }, { @@ -559,7 +559,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.37, + "p99LatencyMs": 0.45, "errorRatePct": 0 }, { @@ -579,7 +579,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.49, + "p99LatencyMs": 0.48, "errorRatePct": 0 }, { @@ -589,7 +589,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.21, + "p99LatencyMs": 0.23, "errorRatePct": 0 }, { @@ -599,7 +599,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.31, + "p99LatencyMs": 0.39, "errorRatePct": 0 }, { @@ -609,7 +609,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.27, + "p99LatencyMs": 0.33, "errorRatePct": 0 }, { @@ -619,7 +619,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.23, + "p99LatencyMs": 0.25, "errorRatePct": 0 }, { @@ -639,7 +639,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.22, + "p99LatencyMs": 0.21, "errorRatePct": 0 }, { @@ -649,7 +649,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.66, + "p99LatencyMs": 0.63, "errorRatePct": 0 }, { @@ -669,7 +669,7 @@ "p99LatencyMs": 500, "errorRatePct": 0 }, - "p99LatencyMs": 0.25, + "p99LatencyMs": 0.26, "errorRatePct": 0 }, { @@ -679,7 +679,7 @@ "p99LatencyMs": 750, "errorRatePct": 0 }, - "p99LatencyMs": 1.98, + "p99LatencyMs": 2.09, "errorRatePct": 0 }, { diff --git a/benchmarks/results/latest.md b/benchmarks/results/latest.md index 5016c533ee..ef34acd17d 100644 --- a/benchmarks/results/latest.md +++ b/benchmarks/results/latest.md @@ -2,30 +2,30 @@ Mode: smoke Target: local Express app -Generated: 2026-05-27T03:36:36.599Z +Generated: 2026-05-27T08:23:05.133Z Iterations per endpoint: 3 Concurrency per endpoint: 1 | Endpoint | Method | Requests | Error % | Sustained RPS | p50 | p95 | p99 | TTFB p95 | Gate | | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | -| health | GET /health | 3 | 0 | 173.57 | 1.19 ms | 15.42 ms | 15.42 ms | 15 ms | pass | -| auth register | POST /api/auth/register | 3 | 0 | 513.67 | 0.85 ms | 4.32 ms | 4.32 ms | 4.26 ms | pass | -| auth login | POST /api/auth/login | 3 | 0 | 1803.2 | 0.52 ms | 0.59 ms | 0.59 ms | 0.55 ms | pass | -| auth oauth callback | GET /api/auth/oauth/github/callback | 3 | 0 | 2537 | 0.34 ms | 0.54 ms | 0.54 ms | 0.5 ms | pass | -| auth refresh | POST /api/auth/refresh | 3 | 0 | 2515.2 | 0.39 ms | 0.41 ms | 0.41 ms | 0.38 ms | pass | -| users list | GET /api/users | 3 | 0 | 3000 | 0.22 ms | 0.24 ms | 0.24 ms | 0.22 ms | pass | -| users create | POST /api/users | 3 | 0 | 2883.58 | 0.35 ms | 0.37 ms | 0.37 ms | 0.35 ms | pass | -| jobs list | GET /api/jobs | 3 | 0 | 3000 | 0.28 ms | 0.29 ms | 0.29 ms | 0.26 ms | pass | -| jobs create | POST /api/jobs | 3 | 0 | 2627.45 | 0.34 ms | 0.49 ms | 0.49 ms | 0.46 ms | pass | -| proposals list | GET /api/proposals | 3 | 0 | 3000 | 0.2 ms | 0.21 ms | 0.21 ms | 0.19 ms | pass | -| proposals create | POST /api/proposals | 3 | 0 | 3000 | 0.29 ms | 0.31 ms | 0.31 ms | 0.29 ms | pass | -| payments create | POST /api/payments | 3 | 0 | 3000 | 0.25 ms | 0.27 ms | 0.27 ms | 0.24 ms | pass | -| reviews list | GET /api/reviews | 3 | 0 | 3000 | 0.23 ms | 0.23 ms | 0.23 ms | 0.21 ms | pass | +| health | GET /health | 3 | 0 | 174.67 | 1.35 ms | 15.13 ms | 15.13 ms | 14.67 ms | pass | +| auth register | POST /api/auth/register | 3 | 0 | 425.88 | 0.84 ms | 5.54 ms | 5.54 ms | 5.48 ms | pass | +| auth login | POST /api/auth/login | 3 | 0 | 1850.57 | 0.51 ms | 0.58 ms | 0.58 ms | 0.54 ms | pass | +| auth oauth callback | GET /api/auth/oauth/github/callback | 3 | 0 | 2566.93 | 0.34 ms | 0.53 ms | 0.53 ms | 0.5 ms | pass | +| auth refresh | POST /api/auth/refresh | 3 | 0 | 2546.33 | 0.4 ms | 0.4 ms | 0.4 ms | 0.37 ms | pass | +| users list | GET /api/users | 3 | 0 | 3000 | 0.3 ms | 0.31 ms | 0.31 ms | 0.29 ms | pass | +| users create | POST /api/users | 3 | 0 | 2578.89 | 0.37 ms | 0.45 ms | 0.45 ms | 0.42 ms | pass | +| jobs list | GET /api/jobs | 3 | 0 | 3000 | 0.27 ms | 0.29 ms | 0.29 ms | 0.26 ms | pass | +| jobs create | POST /api/jobs | 3 | 0 | 2482.67 | 0.36 ms | 0.48 ms | 0.48 ms | 0.45 ms | pass | +| proposals list | GET /api/proposals | 3 | 0 | 3000 | 0.19 ms | 0.23 ms | 0.23 ms | 0.21 ms | pass | +| proposals create | POST /api/proposals | 3 | 0 | 2769.12 | 0.36 ms | 0.39 ms | 0.39 ms | 0.37 ms | pass | +| payments create | POST /api/payments | 3 | 0 | 3000 | 0.31 ms | 0.33 ms | 0.33 ms | 0.31 ms | pass | +| reviews list | GET /api/reviews | 3 | 0 | 3000 | 0.2 ms | 0.25 ms | 0.25 ms | 0.23 ms | pass | | reviews create | POST /api/reviews | 3 | 0 | 3000 | 0.25 ms | 0.25 ms | 0.25 ms | 0.23 ms | pass | -| messages list | GET /api/messages | 3 | 0 | 3000 | 0.21 ms | 0.22 ms | 0.22 ms | 0.2 ms | pass | -| messages create | POST /api/messages | 3 | 0 | 2116.28 | 0.4 ms | 0.66 ms | 0.66 ms | 0.63 ms | pass | -| notifications list | GET /api/notifications | 3 | 0 | 3000 | 0.21 ms | 0.22 ms | 0.22 ms | 0.2 ms | pass | -| notifications create | POST /api/notifications | 3 | 0 | 3000 | 0.24 ms | 0.25 ms | 0.25 ms | 0.23 ms | pass | -| uploads create | POST /api/uploads | 3 | 0 | 976.06 | 0.48 ms | 1.98 ms | 1.98 ms | 1.96 ms | pass | +| messages list | GET /api/messages | 3 | 0 | 3000 | 0.2 ms | 0.21 ms | 0.21 ms | 0.2 ms | pass | +| messages create | POST /api/messages | 3 | 0 | 2215.25 | 0.41 ms | 0.63 ms | 0.63 ms | 0.61 ms | pass | +| notifications list | GET /api/notifications | 3 | 0 | 3000 | 0.22 ms | 0.22 ms | 0.22 ms | 0.21 ms | pass | +| notifications create | POST /api/notifications | 3 | 0 | 3000 | 0.26 ms | 0.26 ms | 0.26 ms | 0.24 ms | pass | +| uploads create | POST /api/uploads | 3 | 0 | 931.33 | 0.5 ms | 2.09 ms | 2.09 ms | 2.07 ms | pass | | search query | GET /api/search?q=freelance | 3 | 0 | 3000 | 0.24 ms | 0.52 ms | 0.52 ms | 0.5 ms | pass | -| admin metrics | GET /api/admin/metrics | 3 | 0 | 2700.37 | 0.28 ms | 0.55 ms | 0.55 ms | 0.53 ms | pass | +| admin metrics | GET /api/admin/metrics | 3 | 0 | 2732.86 | 0.28 ms | 0.55 ms | 0.55 ms | 0.53 ms | pass | diff --git a/demos/api-benchmark-smoke-demo.mp4 b/demos/api-benchmark-smoke-demo.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..cefaca0d77893cc1fc3ab7c1662af27bcfe9cb70 GIT binary patch literal 59049 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 Tu~7gpHZ=vtrq6(XjEw&Ww7!3` literal 0 HcmV?d00001 diff --git a/demos/api-benchmark-smoke-demo.svg b/demos/api-benchmark-smoke-demo.svg new file mode 100644 index 0000000000..89ae1be821 --- /dev/null +++ b/demos/api-benchmark-smoke-demo.svg @@ -0,0 +1,11 @@ + + + + API benchmark smoke + 21 API endpoints covered + npm run benchmark:smoke + 0% error rate + p50, p95, p99, RPS, and TTFB captured + GitHub Actions smoke gate passing + SecureBananaLabs bug-bounty #30 + diff --git a/demos/api-benchmark-smoke-demo.svg.png b/demos/api-benchmark-smoke-demo.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..78e9ffd47a9798ab4539e191155504ed36e25bb9 GIT binary patch literal 166351 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