05-Jun-2026 — reduce request memory pressure with lean reads, tile timeout and capped queries ref #285

build 668commit c8bedc9


What's New

Two rounds of request-memory work, combined. Server read queries now return plain objects instead of full Mongoose documents, the OS Maps tile proxy gives up on a hung upstream rather than holding the request open, and unbounded "all" queries are capped so a large dataset cannot exhaust the machine's memory.

Related issue: #285 - perf(walks): unbounded event queries cause request-memory OOM on large area-scoped sites

How it behaves

Why it matters

On area-scoped sites (for example Kent, with 4205 events) an unbounded "all events" query returned every matching document as full Mongoose objects, driving Firecracker memory toward the 512MB ceiling; a live test returned HTTP 503 after 35 seconds. Group sites hold a fraction of the data so never hit this. It matters for the Ramblers HQ rollout, where many large area-scoped sites are expected.

Technical changes