fix: bound Worker waiter growth with concurrent-room cap and lifetime ceiling (PB-26-012, v0.3.22) - New WaiterCapacity Durable Object: per-source and service-wide active waiter counters, fail-closed on storage errors and malformed keys - Edge reserves one slot per accepted rendezvous upgrade; the per-room DO releases on close, error, hard-cap, inactivity timeout, stale-reclaim, and pair-up so paired rooms stop holding capacity - New non-refreshable MAX_WAITER_AGE_MS hard cap (30 min default) wired as a second timer alongside the existing WAITING_TIMEOUT_MS inactivity timer; fires regardless of liveness - SocketAttachment gains capacityKey; per-room DO forwards it to the WaiterCapacity coordinator on every waiter-exit path - New telemetry counter rejectedCapacity; opt-in env overrides WORKER_MAX_WAITERS_PER_SOURCE (240) and WORKER_MAX_WAITERS_TOTAL (4096) - Gate: 10 test files / 123 tests (10 new), three TypeScript configs, Bun smoke, license guard, bun audit --production (no vulns), wrangler deploy --dry-run with RENDEZVOUS + THROUGHPUT_BUDGET + WAITER_CAPACITY bindings
$ koh steal kepr.uk/peach-relay@88ebd3197d65
·
parent: 4210386a1cdd
discussion
log in to leave a comment.