Highwater

A compute broker that decides where to run your job —
on facts that are still true as of now.

▶ Watch the 3-minute demo · Source

The problem

You have four providers, because none of them can give you all the capacity you need. Every job starts with the same question, answered from four browser tabs and a vague memory of what spot cost last month.

Placement tools answer the cheap version. They don't know what the job needs, they can't tell a fresh fact from a stale one, and they have no memory of you — your quota, your interruption history, your rule about overnight runs.

Same 21 facts. Same instant. Nothing deleted.

ONE WINDOW FOR EVERYTHING  — 30d, every kind of fact
  ceiling in use: 22GB

  → runpod / A10 24GB   $3.09   11.1h   @ $0.28/hr

  runpod is degraded right now — jobs failing at container start
  22GB was measured on commit 7b2e044. This job needs 38GB.
  It dies at step 200.
ASOF  — per-kind, pinned, overrides live, commit-scoped
  ceiling in use: 38GB

  → lambda / L40S 48GB   $6.42   5.8h   @ $1.10/hr
    alt        modal / H100 80GB   $8.73   2.2h
    dominated  lambda / A100 80GB  $8.82   4.2h

  Not saying, because I can't stand behind it:
    · vram_ceiling: 22GB  commit 7b2e044 — void, not stale
    · price: $1.29/hr     superseded; 3d old, 6h half-life
    · price ×2, capacity  live outage on runpod
    · capacity: 4 avail   pinned quota caps this account at 2
    · price: $0.95 spot   pinned policy: no spot over 4h

    ? spot interruption data is 41d old, past its 14d half-life.
      Tell me once and I'll pin it.

Why

Every external observation is a dated fact with a half-life, not prompt context. Scrape a pricing table into a prompt and the model cannot tell a number from twenty minutes ago from one from last quarter. asof reads decayed state.

kindhalf-lifewhy
quota · credential · policypinnedwrong here is a hard failure
price6ha day-old price is a guess
capacity12hthe most volatile signal there is
interruption_rate14dspot behaviour shifts weekly
vram_ceiling · step_timecommit-scopednot stale — void

Cross-kind overrides catch what no half-life can: a live outage voids a provider's prices however fresh, and a pinned quota suppresses a capacity reading that exceeds it. Neither fact is stale. They never compete for the same slot.

And it reads state, not search. A relevance query over the same corpus returns six prices and no memory ceiling — the fact that decides the question shares no vocabulary with it. Decay can only re-rank what retrieval surfaced.

Run it

git clone https://github.com/abhijitbetigeri/highwater
npm install && npm run demo

No API key, no database, no model call, no network. The recommendation is a pure function of resolved state, so none of the improvement comes from sampling.

Stack

Neonfacts store, pgvector, decay in SQL at query time; branches as the what-if engine
Fly.iothe probe — a 60s run measuring real VRAM high-water
Examarket sensor; results land as dated facts, never raw context
Mastraruntime; observability as the proof surface
Executorreads autonomous, writes gated; credentials out of model context
AgentMailthe broker's inbox — notify out, migrate back in
assistant-uichat surface and the half-life controls
Kernelthe consoles with no API: quota, billing, capacity

What this is not

Not a scheduler — it decides placement and hands off. Not a cost dashboard; the output is a decision. Not a multi-cloud abstraction — it doesn't make providers look alike, it exploits the fact that they don't. And nothing to offer anyone on committed capacity: if you've pre-paid, there's no spread to find.

Figures in the demo are fixture data modeled on real provider shapes, not live scrapes.
github.com/abhijitbetigeri/highwater