All field notes

The capacity book is not a catalog.

Quant firms do not route orders against a PDF of yesterday’s inventory. Nodus does not route workloads against a cloud SKU page. Market maintains a normalized, TTL’d book of what can actually start: continuously, asynchronously, and off the router’s critical path.

What we borrowed

A market-making desk keeps a live book: instruments, sizes, prices, staleness, and risk that is independent of any single trade. Our market service plays that role for GPU and accelerator capacity. It does not warehouse inventory like a classic two-sided maker. It normalizes other people’s supply into one internal book the rest of the control plane can trust.

Freshness is a routing feature. Stale inventory is not discounted politely; it is penalized or made ineligible.

Stage contract

  • Owns: market service + supplier adapters
  • Before: continuous poll / webhook / private pool feeds
  • After: normalized offer snapshots with TTL and health facts
  • Transport: HTTPS → Kafka → materialize current-offer view
  • Durable ack: append-only ingest first, then bounded-freshness snapshot for the router

Market runs asynchronously relative to any one workload. The router never queries provider APIs on its critical path. It only reads these snapshots.

The adapter boundary

Every supplier hides behind one internal interface. Adapters cannot mutate workload state. They publish validated commands and events; the control plane remains the authority.

nodus · adapter internal
# One interface. N suppliers.
list_offers(filters) -> offers
quote(offer, window) -> quote
reserve(quote, idempotency_key) -> lease
provision(lease, workload_generation) -> runtime_handle
release(lease)
get_usage(lease) -> usage records
verify_event(webhook) -> supplier event

Supply can arrive as real-time APIs, batch feeds, private reserved-capacity agreements, spot adapters, Nodus Fleet pools, or opaque wholesale adapters (RunPod, Vast). The customer-facing catalog is a Nodus-only projection. Wholesale brands never leak into GET /v1/workloads/{id}.

A normalized offer

Offers are snapshots, not promises. A router cannot reserve an expired offer without a fresh quote. Interruption behavior and provisioning latency are first-class fields because we score cost to completion, not hourly price alone.

  • supplier / offer ID / snapshot timestamp / TTL
  • accelerator, memory, CPU, disk, network
  • region, residency, compliance attributes
  • availability window and provisioning latency
  • price, billing increment, lease and cancellation terms
  • interruption behavior + supplier-health snapshot

Ingest is append-only

Every update is timestamped, versioned, and linked to its source. We store source time, receive time, adapter version, signature/verification result, and expiration. Materialization into the current-offer view is a separate step. Malformed supplier events go to a dead-letter path. No adapter may retry a non-idempotent reservation without a stable idempotency key and a confirmed provider-side status query.

Adapters run as isolated workers: per-supplier credentials, circuit breakers, bounded retries, independent rate limits. A slow or compromised supplier must not block routing for another supplier or exhaust shared worker capacity.

Health is not price

Health is computed independently of a single offer: provisioning success, reclaim frequency, runner failure rate, adapter heartbeat, webhook quality, billing variance, recent operator intervention. We store the score and the underlying facts so the router can explain its decision. These are production inputs to eligibility, not dashboard-only metrics.

Ownership line

  • Market owns offer snapshots, quotes, adapter health, supplier capabilities.
  • Bidding owns the commercial commitment to an offer.
  • Router consumes immutable market snapshots; it does not call providers synchronously.

That separation is how a reclaim storm on one supplier becomes a scoring input instead of a control-plane outage.

What ships next

Pilot supply is first-party Fleet plus controlled adapters. External cloud suppliers (RunPod + Vast) and a customer-facing Nodus marketplace surface land after mixed-market reclaim recovery is proven. Heterogeneous metering (billing-increment and FX mismatches across suppliers) is still an open ledger design problem we are solving before we claim financial close from market price alone (we never will; lease terms are financial truth).

Previous: 001 · Control loop. Next: 003 · Routing.

All field notes