Files
orca/cloud/dev/scripts/relay-load-reader-evidence.mjs
T
Jinwoo-H 25e31c931d chore(cloud): add the relay fence broker, ops console, Terraform root, and scripts
Copies the private repository's relay side: the IAM-only fence broker, the
operations console and incident monitor, the relay Terraform root with its
backend configuration and tfvars, and the deploy/capacity/admission/rehome/
monitoring scripts the workflows call, with their contract tests, contracts,
and fixtures.

The foundation and apps Terraform roots and the API and auth services stay
private. Four surfaces that spanned both trees are narrowed to the relay side
rather than left with a dangling read: the infra runner and the root-partition
and workload-identity-condition renderers now declare only the relay root, and
the Cloud SQL rollout census drops the six app workflows that are not here.
2026-09-03 06:20:32 -04:00

52 lines
1.7 KiB
JavaScript

const DEFAULT_TIMEOUT_MS = 8_000
const DEFAULT_POLL_MS = 100
export async function createRelayLoadReaderEvidence(origins, dependencies) {
const distinctOrigins = [...new Set(origins)].sort()
const baselines = new Map(await Promise.all(distinctOrigins.map(async (origin) => [
origin,
await dependencies.readQueuedBytes(origin)
])))
const peaks = new Map(baselines)
const pending = new Map()
const now = dependencies.now ?? Date.now
const delay = dependencies.delay
const timeoutMs = dependencies.timeoutMs ?? DEFAULT_TIMEOUT_MS
const pollMs = dependencies.pollMs ?? DEFAULT_POLL_MS
const observe = async ({ cellOrigin }) => {
if (!baselines.has(cellOrigin)) throw new Error('reader origin lacks a run baseline')
if (peaks.get(cellOrigin) > baselines.get(cellOrigin)) return
const current = pending.get(cellOrigin)
if (current) return await current
const proof = (async () => {
const baseline = baselines.get(cellOrigin)
const deadline = now() + timeoutMs
for (;;) {
const queuedBytes = await dependencies.readQueuedBytes(cellOrigin)
peaks.set(cellOrigin, Math.max(peaks.get(cellOrigin), queuedBytes))
if (queuedBytes > baseline) return
if (now() >= deadline) {
throw new Error('reader stream produced no causal Relay queued-byte increase')
}
await delay(pollMs)
}
})()
pending.set(cellOrigin, proof)
try {
await proof
} finally {
pending.delete(cellOrigin)
}
}
const snapshot = () => distinctOrigins.map((origin) => ({
origin,
baselineBytes: baselines.get(origin),
peakBytes: peaks.get(origin),
increaseBytes: peaks.get(origin) - baselines.get(origin)
}))
return { observe, snapshot }
}