Asymmetric Interface Tolerance¶
Core Idea¶
At any interface, the strictness with which each side enforces the spec is an independent, tunable design parameter, and the four combinations of strict/liberal on each side produce qualitatively different long-term equilibria. An interface is therefore not just a spec but a three-object system: spec plus sender policy plus receiver policy.
How would you explain it like I'm…
Neat Writer, Picky Reader
Strict Or Loose?
Strictness as a Dial
Broad Use¶
- Network protocols: the robustness principle (strict sender, liberal receiver) bought early-internet interoperability and the drift that later ossified the protocols.
- Programming languages: strict versus lenient parsing — quirks modes, automatic semicolon insertion — with predictable fragmentation consequences.
- Compilers: strict tools reject conforming-but-suspect programs while lenient ones accept them.
- Linguistics: the cooperative principle and principle of charity as a production-versus-interpretation asymmetry producing semantic drift.
- Contract law: strict-construction versus liberal-interpretation, and the contra-proferentem rule construing ambiguity against the drafter.
- API design: strict schema validation catches drift early but blocks rollouts; tolerant readers enable rolling deployments but accumulate drift.
- Ecology: host versus symbiont strictness in mutualisms — liberal-receiver systems acquire diversity faster but accumulate cheaters.
Clarity¶
Makes audible the policy dimension that natural-language treatments collapse into "the spec," and dissolves the robustness principle's paradox: the cell that is good for bootstrapping is bad for evolution, so the choice is a tradeoff, not a universal prescription.
Manages Complexity¶
Compresses interoperability disputes into a two-by-two diagnostic — which cell are they in, and is it the cell they want? — that yields not just a classification but a prescribed direction of adjustment.
Abstract Reasoning¶
Supports the de-facto specification argument (under a liberal receiver the true spec drifts toward the union of what receivers accept) and the reversal-by-fiat impossibility (an entrenched policy cannot be made strict by flag-flip because the installed base depends on the liberality).
Knowledge Transfer¶
- Protocols and contract law: standards bodies wanting clearer protocols make senders pay for sloppiness — the same dynamic contract law has long known as construe-against-the-drafter.
- Typing and schemas: the argument for static typing is structurally the argument for strict schema validation — catch drift early, accept short-term friction for long-term clarity.
- Biology to APIs: strict-strict mutualisms resist cheaters while liberal-receiver ones acquire diversity but require policing — mapping onto strict versus open API ecosystems.
Example¶
Early-web HTML ran sender-careless, receiver-extremely-liberal: browsers rendered malformed markup, bootstrapping the web fast but drifting the true spec toward the union of tolerated malformations — and the fix could not simply make browsers strict, requiring HTML5 to specify the error-handling itself.
Relationships to Other Primes¶
Parents (1) — more general patterns this builds on
- Asymmetric Interface Tolerance presupposes Interface — The file is explicit: interface is the OBJECT (boundary + published contract); this prime is a POLICY LAYER atop it (spec + two independently-tunable enforcement strictnesses) — 'this prime is a child'. High sim (>1.0) is parent-to-child, NOT duplication.
Path to root: Asymmetric Interface Tolerance → Interface → Boundary
Not to Be Confused With¶
- Asymmetric Interface Tolerance is not the Interface itself because the interface is the boundary-and-contract object, whereas this prime is the enforcement-policy layer atop it — spec plus two independently-tunable strictnesses.
- Asymmetric Interface Tolerance is not Engineering Tolerances because engineering tolerance is a numeric deviation band the spec states, whereas this prime's "tolerance" is per-side enforcement leniency set differently by each party.
- Asymmetric Interface Tolerance is not Compatibility because compatibility is the static property that components work together, whereas this prime is the policy choice that produces or erodes compatibility over time.