Fail Fast
Crash at the point of misconfiguration rather than degrading quietly into a wrong state.
Fail fast is the principle that a program should stop at the first moment it knows something is wrong, as close as possible to the cause, rather than continuing in a degraded state. The crash you get from a missing configuration value is not a defect — it is the signal you wanted.
The idea is easiest to see in its negation. A required setting read as PORT ?? "3000" will boot on a broken environment, bind the wrong port, and surface hours later as an authentication error nobody connects to the config. Reading it through a helper that throws on absence turns a mysterious downstream failure into a one-line startup error. See Defensive Default and Environment Variable.
Fail fast is not a blanket ban on fallbacks. Coalescing an absent list to an empty list is a narrowing convenience with no hidden state. The distinction is whether the default can stand in for a real value and be wrong: identity, credentials, hosts, ports, and secrets should never have one.
There is a reporting corollary. When a step cannot do its job, it should say so rather than emit a plausible-looking result. A build that produces five empty pages should report failure, not "built five pages" — honest reporting is what makes the metric usable at all. See Goodhart's Law.
See also5
Hand-picked in the note itself — the neighbours worth reading next.
Silent Failure
A failure that produces no signal, so the absence of an error reads as success.
Method44 connections
Secret Management
Storing, distributing, and rotating credentials without embedding them in code or history.
Systems & Tooling15 connections
Observability
How much of a system's internal state can be inferred from what it emits.
Method15 connections
Assertion
The statement in a test that must hold, and the only part that can actually fail.
Testing & Verification9 connections
Human in the Loop
Requiring a person's judgement at chosen points in an otherwise automated process.
Agents & Language Models9 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from11
Notes elsewhere in the wiki that reach for this one.
- AssertionTesting & Verification
The statement in a test that must hold, and the only part that can actually fail.
- Branch CoverageTesting & Verification
The proportion of conditional outcomes exercised — the strictest ordinary coverage metric, and the most informative.
- CronSystems & Tooling
Time-based scheduling of recurring jobs, and the reasons scheduled jobs quietly stop working.
- Defensive DefaultMethod
A substituted value that papers over a missing input and hides the misconfiguration that produced it.
- Environment VariableSystems & Tooling
A named value in a process's environment, inherited by its children — the standard configuration channel.
- Goodhart's LawMethod
When a measure becomes a target, it stops being a good measure.
- Human in the LoopAgents & Language Models
Requiring a person's judgement at chosen points in an otherwise automated process.
- ObservabilityMethod
How much of a system's internal state can be inferred from what it emits.
- Schema ValidationAgents & Language Models
Checking data against a declared shape at runtime, and using the result as the typed value.
- Secret ManagementSystems & Tooling
Storing, distributing, and rotating credentials without embedding them in code or history.
- Silent FailureMethod
A failure that produces no signal, so the absence of an error reads as success.