Conormis status

The manual

Multi-vantage probing: the design

The 2026-09-01 incident (the public record) proved the status service's second false-green class: the identity sign-in's write path hung for users routed through Europe (the D1 primary sits away from the users; reads were already fine), while the prober's single vantage answered healthy the whole time. The board read 13/13 operational through a real outage. The incident's own follow-up list names the fix: probe from more than one network vantage.

This document is the design: the options map, the chosen shape, and what the result honestly proves. The implementation notes live in the README; this file is the reasoning.

The constraints

The options map

A. A second cron worker placed via a jurisdiction hint

Dead end as stated: Workers offers no jurisdiction or region hint to place (the estate verified this against the platform docs while scoping; D1's jurisdiction and read replication are database knobs, not worker placement). A second cron worker still yields a second uncontrolled vantage — its scheduling colo is whatever the scheduler picks — so the idea survives, minus the "hint": see the chosen shape.

B. A probe-relay on the sibling estate workers

The identity OP (id.ribose.com), the platform instances (demo/nmi/tl/platform), and the rag worker already run where their users are — a relay module in each would give user-geography-driven vantages, the best signal available. The cost: every sibling is a separate repo with its own tag-gated deploy pipeline, so v1 becomes a four-repo coordinated wave; and most siblings have no cron trigger today, so the "vantage" would still need a scheduled runner added per worker. This is the right expansion path, not the right v1. The chosen shape's report endpoint is deliberately sibling-shaped so these relays can join later without another status-repo change.

C. Cloudflare's own per-colo facilities

None exist for this: there is no API to run "a probe from colo X" on demand, and the analytics/observability surfaces report traffic, they do not probe. Nothing to build on.

D. The chosen shape: a same-repo relay cron worker + an authenticated report endpoint

A second worker deployed from this repository (ribose-status-relay, wrangler.relay.toml) runs the same probe registry on its own cron, from its own scheduling colo, and POSTs the round's results to the status worker's guarded POST /api/vantage-report. The status worker folds each report into per-vantage KV rows and computes the verdict across vantages.

Why this one:

The shape in detail

ribose-status (this worker, vantage "home")
  cron * * * * * → probe every service → svc:<id> rows (as today)
                 → compute the verdict across vantages → draft sweep
  POST /api/vantage-report (Bearer STATUS_RELAY_TOKEN)
                 → validate → fold into vantage:<relay>/svc:<id> rows
                 → vantage:<relay>/meta (last report, observed colo)
                 → recompute the verdict → draft sweep

ribose-status-relay (the v1 relay, vantage "relay-1")
  cron * * * * * → probe every service (the same registry and
                   assertions; the probe-token header only rides the
                   exercised auth legs — retired 2026-09-07 until the
                   deployed OP carries the route again)
                 → observe its own colo (best effort, see below)
                 → POST the round to the report endpoint
  No KV, no page, no state: a stateless prober with a report duty.

The relay report's security

The colo honesty rule

A vantage's location is observed, never claimed: each relay best-effort reads its own colo once per round (the colo= field of the estate zone's /cdn-cgi/trace, answered by the edge that served the subrequest) and reports it with the round. The page shows it as "observed colo FRA at report time". When the observation fails, the vantage shows no colo rather than a guessed one. Cloudflare may move a worker's scheduling colo at any time; the label follows the latest observation and the docs never promise a geography.

What this honestly proves (and what it does not)

Later waves (named, not built)