CHEESE API

Performance and SLOs

What is measured, provisional release gates, and how to interpret latency.

Suggest an edit

Published SLOs use warmed production-equivalent workers, a frozen representative panel, no required response-cache hits, and include serialization. Server and public end-to-end time are measured separately.

OperationWorkloadServer p95 release target
/search20 hits, no property filters≤300 ms
/search100 hits, default shortlist≤750 ms
/sample100 products≤500 ms
POST /runsAdmit 1,000 items≤1 s
GET /runs/{id}Status without results≤100 ms
accepted warm runFirst committed result≤2 s guardrail
/search_cheese100 hits≤2.5 s guardrail

These are release gates, not claims until the public dashboard and production-sized saturation suite pass. The key concurrency scenario holds singular traffic within its SLO while two tenants each run 1,000-item workloads, with continuous comparable progress, bounded service gaps, monotonic partial results, no duplicate commits, and no worker restart/OOM.

Developer-preview evidence

On 2026-08-31, a warmed development sample of 20 fresh 1,000-item admissions measured server p95 of 697 ms for POST /runs and 9.47 ms for GET /runs/{id}. A separate 1,000-item Morgan run survived a forced API service restart and completed with 1,000 successful results in 151 seconds.

The same development release passed the sampling gate on every one of the seven chemical spaces that advertises sampling. Twenty 100-product requests per space measured public wall-time p95s from 161.46 to 275.23 ms against the 500 ms target. Repeated requests with the same seed, database release, and sampling version returned the same ordered response, and every measured response contained 100 distinct product IDs. A controlled 5,000-draw test of the combinatorial sampler also matched its declared route/product-tuple weighting (Pearson chi-square 0.3083 with one degree of freedom, below the p=0.001 rejection threshold). These results cover the currently advertised combinatorial database type; they do not establish behavior for a future eligible_row database.

Router overhead was measured as the application Server-Timing duration minus the worker engine's reported total on twenty warmed 20-hit Morgan requests per chemical space. All seven spaces passed the 25 ms hard target: per-space p95 ranged from 8.33 to 11.30 ms, and the maximum of all 140 observations was 13.75 ms. This partition excludes public network time and includes platform admission, worker transport, serialization, and response handling.

The sparse scheduler-index release removed the long idle-table scan and executes an underfilled fair quantum immediately. Two one-item D2B runs produced their first committed results in 0.504 and 0.505 seconds, and a 64 + 64 shakedown measured 0.849 and 0.764 seconds. The production-sized 1,000 + 1,000 repeat did not close the guardrail: its first results arrived in 3.655 and 2.015 seconds. The maintained saturation harness measures from the accepted 202 response, allows one 0.5-second polling interval, and still failed this gate because the first tenant exceeded that tolerance. Cancellation alone does not count as result evidence.

Two equal-cost 1,000-item Morgan runs then completed with 1,000 unique successful results each, zero failed items, a 0.997 throughput ratio, and a maximum observed progress difference of eight items. During that run, 2,050/2,050 default searches succeeded with 59.09 ms engine p95. In a separate cancellation run, one tenant reached terminal cancellation in 0.669 seconds at 128 successful and 872 cancelled items; the other tenant completed all 1,000 items, with no duplicate results.

The latest mixed-capacity development run exercises D2B default Morgan and CHEESE shape traffic together with typed Enamine SMARTS traffic. Its two 1,000-item lanes produced 2,000 unique successful durable results with zero failures, a 0.998 throughput ratio, maximum progress skew of four items, and terminal times of 393.87 and 394.81 seconds. Maximum observed service gaps were 4.932 and 5.360 seconds; both passed the harness's five-second gate with its single 0.5-second polling allowance, although the second raw observation remains above the nominal target. All 1,214 default searches succeeded at 123.56 ms engine p95, and all 240 shape searches succeeded at 165.32 ms engine p95. Typed SMARTS did not pass capacity isolation: 149 of 240 requests succeeded at 1,859.13 ms engine p95, while 91 returned transient 503 responses during the early saturation interval. An 8-vCPU development worker experiment could not be placed because the account's concurrent Fargate vCPU quota was exhausted, and the service was restored to its prior 4-vCPU size.

These results establish development run control, sampling, exact-once completion for the measured runs, Morgan fairness, cancellation, and default/shape capacity-isolation evidence. They are not a production SLO claim. Production promotion remains blocked on the full-scale first-result and typed SMARTS availability gates, the raw service-gap outlier, additional production-equivalent capacity, cross-library saturation, and every per-library Morgan gate; for example, the warmed Enamine development baseline measured 460.78 ms engine p95 against the 300 ms 20-hit release target.

On this page