Skip to main content
Reality Oracle
OverviewCitizensReality FeedVerified ActorsIntel SubscribersMarket PredictionInvestment FundsHow It WorksGates
Products
Backtest ForensicsLiving MapDrift AlertsPath QueriesCustom AxesRisk Maps
Solutions
Compliance OfficersRisk Managers / CROPortfolio ManagersCTOs & Engineering
Enterprise
Enterprise OverviewReality Oracle · SuperappThe AppsArchitectureAudit ManifestTrust CenterPricing
Developers
DocumentationAPI ReferenceSDKsArchitectureAudit Manifest
Resources
BlogUse CasesCustomer StoriesPressChangelog
Company
AboutFoundersCareersContact
Trust
Trust Center
More
PricingJoin Waitlist
··9 min read

A missing key self-disables

An unset env var returns Disabled, not an error — the platform never breaks on a missing feed.

A missing key self-disables

The worst kind of failure on a platform with many optional feeds is for one missing credential to take the whole thing down. deino-atlas makes that failure mode impossible by construction: a source whose env var is unset returns Disabled, not an error.

The worst kind of failure on a platform with many optional feeds is for one missing credential to take the whole thing down. deino-atlas makes that failure mode impossible by construction: a source whose env var is unset returns Disabled, not an error.

Disabled, not broken

Every SourceDescriptor names a key_env — the environment variable that holds its credential. When the poller runs, it checks that env var first. If the var is set, the source polls. If it is not, the source returns Ok(None) and is marked Disabled. The platform keeps running; that one feed is dark. The other sources — the ones with their credentials present — keep polling and publishing. A missing key is a quiet absence, not a crash.

Each source has a switch: credential present, the feed is live; credential absent, the feed is Disabled and the engine moves on. No error propagates.
Each source has a switch: credential present, the feed is live; credential absent, the feed is Disabled and the engine moves on. No error propagates.

Why Ok(None), not an error

The obvious design is to error when a credential is missing — fail loud, so someone notices. The problem is that loud failure on a multi-source platform is a pager storm that does not tell you which feed matters. A platform that ingests flights, vessels, quakes, weather, and conflict has a different operational posture: not every feed is load-bearing for every user. Self-disabling lets the platform degrade gracefully — the quake feed stays up when the flight key expires, and the operator sees one Disabled line in the status, not a traceback.

A missing key is a quiet absence, not a crash. The feeds that have their credentials keep running; the one that does not goes dark.

The status surface

Disabled is a first-class status, not an absence of status. The source list endpoint reports it — which sources are Live, which are Disabled, and why. An operator reads the list and sees that the flight feed is dark because OPENSKY_KEY is unset. That is actionable without being a fire. The platform never breaks on a missing feed; it reports it.

  • Self-disabling by construction: unset key_env returns Ok(None) and Disabled, never an error.
  • Graceful degradation: other sources keep polling; the missing one goes dark, not down.
  • Disabled is a status, not a silence — the source list reports it, with the reason.

What this assumes

The assumption is that not every source is critical to every query — which is true for a World Monitor that serves many viewports. A query over conflict signals does not need the weather feed; a query over vessel traffic does not need the quake feed. Self-disabling is the right design when partial is acceptable, and it is the wrong design when partial is not. For the feeds where partial is not acceptable, the answer is not to remove self-disabling; it is to alert on Disabled for those specific sources. The mechanism is the same; the operational posture on top of it differs.

The platform never breaks on a missing feed. It reports it. The difference between those two is the difference between a 3 a.m. pager and a morning status check.

— deino-atlas operations note

What it is not

Self-disabling is not a claim that missing credentials do not matter. They do — a Disabled source is a dark viewport for the users who need it. The claim is narrower and more honest: a missing key degrades one feed, not the platform. We are pre-revenue and building the POC; the self-disabling behavior is built, and the sources that are live depend on which credentials are present on the box, not on any accuracy posture.

§Keep reading