Gray completes three-hour HTTP qualification
Three sequential one-hour gates delivered 49,997.81 plaintext requests/s, 39,993.57 JSON requests/s and 3,999.85 PostgreSQL requests/s.
Three routes completed the full hour
Gray’s Static-mode route matrix completed three sequential one-hour qualifications: plaintext HTTP, native JSON and a parameterized PostgreSQL query. The complete run lasted 10,858 seconds, including warmup, settling and transition work between routes.
The runner performed an exact-response preflight before each load phase. During the hour it preserved wrk2’s corrected-latency output, sampled the Gray process after connection ramp, and failed the route if delivery, response status, process health, memory growth or file-descriptor growth violated policy.
Plaintext achieved 49,997.81 requests/s against 50,000 requested. Corrected p50 was 1.34 ms, p99 was 7.00 ms and p99.9 was 23.87 ms.
JSON held the same operating shape
The JSON route encoded a new response for every request through Gray’s native JSON path. It achieved 39,993.57 requests/s against 40,000 requested, or 99.984% delivery.
Corrected p50 was 1.31 ms, p99 was 4.09 ms and p99.9 was 17.30 ms. The Gray process remained at 10,316 KiB RSS across all 358 steady-state samples, with 262 open file descriptors and zero measured growth.
The plaintext process produced the same resource result: 10,284 KiB RSS in every steady-state sample and no descriptor growth.
PostgreSQL exposed the queue
The original PostgreSQL route delivered 3,999.85 requests/s against 4,000 requested with flat resources, but corrected p99 reached 802.82 ms and p99.9 reached 1.55 seconds. The route delivered the work; it did not deliver an acceptable tail.
That result identified a blocking architecture in the first database path. Each synchronous query occupied a reactor worker until libpq returned, allowing requests to queue even while CPU remained available.
Grayworth subsequently replaced that path with readiness-driven libpq and compiler-hidden handler continuations. The later continuation qualification is reported as a separate product milestone rather than being substituted into this original record.
The record is reproducible
The report records the Gray binary SHA-256, application and runner hashes, execution mode, duration, requested rates, connection count, CPU topology, database configuration and all route summaries. The publication renderer refuses incomplete or tampered matrices.
This is a same-host Gray product qualification, not an official TechEmpower result or a universal language ranking. Its purpose is to establish sustained delivery, corrected latency and resource stability for the declared applications and environment.
The raw comparison data, methodology and route report remain linked so readers can inspect the result behind the headline.