Appearance
Load-Test Report — Telemetry Ingest
Status: measured (local harness)
Date: 2026-07-11T04:42:12.899Z
Target:http://127.0.0.1:3101/api/v1/telemetry/ingest
Topology: local spawn — STORE_BACKEND=memory, EVENT_BUS=memory, no Postgres/Redis (ingest + in-process pipeline)
Setup
| Knob | Value |
|---|---|
| Tool | autocannon |
| Target rate | 100 req/s |
| Duration | 30s |
| Connections | 20 |
| Auth | RS256 partner JWT per request (unique jti + event_id) |
| Rate limits | Raised via INGEST_*_LIMIT / PREAUTH_IP_LIMIT for the soak |
Results
| Metric | Value |
|---|---|
| Requests sent | 3000 |
| Throughput (avg) | 100.0 req/s |
| Latency p50 | 13.0 ms |
| Latency p90 | 29.0 ms |
| Latency p99 | 64.0 ms |
| Latency mean | 15.2 ms |
| Latency max | 122.0 ms |
| 2xx | 3000 |
| non-2xx | 0 |
| errors / timeouts | 0 |
Verdict
Pass — sub-second p99 under ~100 req/s on this topology. “Sub-second edge extraction” remains an SDK claim; this report measures gateway ingest + in-process pipeline latency.
What this does / does not prove
| Proves | Does not prove |
|---|---|
| Gateway accept path under sustained load | On-device PDF/OCR/NER latency |
| JWT verify + pipeline + SSE fan-out (memory) | Multi-replica Redis Streams + Postgres + outbox under load |
| Rate-limit config can be raised for soak | Production Railway multi-AZ numbers |
Re-run commands
bash
# Baseline (memory topology — published numbers above)
pnpm --filter @waspada/gateway-api load-test
# Inline FMS delivery against a local echo server (no live bank webhook)
pnpm --filter @waspada/gateway-api load-test -- --mock-fms
# Optional: force mock FMS to return 503 at 20% to exercise retry/backoff
LOAD_TEST_MOCK_FMS_FAIL_RATE=0.2 pnpm --filter @waspada/gateway-api load-test -- --mock-fms
# Durable path (Redis + Postgres + outbox) — point at a staged gateway
LOAD_TEST_URL=https://… pnpm --filter @waspada/gateway-api load-testRaw
See last-run.json in this directory for the full autocannon result object.