configuration/lexicon/data/failure.data.json
configuration/lexicon/data/failure.data.json is a file in GovLab Context. 293 lines of code and 0 definitions.
{
"category": "error-handling-resilience",
"records": [
{
"name": "All-Or-Nothing Failure",
"kind": "anti-pattern",
"definition": "Failing the entire system when one part fails instead of degrading to reduced but working service."
},
{
"name": "Brittle Architecture",
"kind": "anti-pattern",
"definition": "A fragile design that breaks entirely under any condition it was not explicitly built for."
},
{
"name": "Exception Swallowing",
"distinctFrom": [
{
"id": "architecture:exception-control-flow",
"reason": "Exception swallowing discards a real failure, while exception control flow uses exceptions for cases that are not failures."
}
],
"kind": "anti-pattern",
"definition": "Catching an exception and silently discarding it, hiding the failure from callers and logs."
},
{
"name": "Fail Open",
"kind": "anti-pattern",
"definition": "Granting access or continuing when a security check fails, exposing the system on error."
},
{
"name": "Failure Propagation",
"kind": "anti-pattern",
"definition": "Letting a failure spread unchecked across component boundaries instead of containing it."
},
{
"name": "Fragile Parsing",
"kind": "anti-pattern",
"definition": "Parsing input so rigidly that any minor deviation causes a failure."
},
{
"name": "Non-Idempotent Operation",
"kind": "anti-pattern",
"definition": "An operation whose repetition changes the result, making it unsafe to retry."
},
{
"name": "Shared Resource Pool",
"kind": "anti-pattern",
"definition": "Serving all work from one shared resource pool, so one overloaded consumer starves the rest."
},
{
"name": "Single Behavior Path",
"kind": "anti-pattern",
"definition": "Providing only one execution path with no fallback, so any failure in it fails the whole request."
},
{
"name": "Trusting Invalid Inputs",
"kind": "anti-pattern",
"definition": "Assuming inputs are valid and using them without checking, so bad data flows through unguarded."
},
{
"name": "Unbounded Retry",
"distinctFrom": [
{
"id": "architecture:retry-storm",
"reason": "Unbounded retry is one caller retrying with no limit, while a retry storm is many callers whose combined retries prolong the failure, bounded or not."
}
],
"kind": "anti-pattern",
"definition": "Retrying a failing operation endlessly with no limit, amplifying load and delaying recovery."
},
{
"name": "Unsafe Default Continuation",
"kind": "anti-pattern",
"definition": "Continuing in an unsafe default state after a failure instead of stopping in a safe one."
},
{
"name": "Blast-Radius Reduction",
"kind": "capability",
"definition": "The ability to contain a failure so it affects only one isolated partition."
},
{
"name": "Bounded Waiting",
"kind": "capability",
"definition": "The ability to guarantee an operation waits no longer than a set limit."
},
{
"name": "Cascading Failure Prevention",
"kind": "capability",
"definition": "The ability to stop one component's failure from cascading through its callers."
},
{
"name": "Continued Operation Under Failure",
"kind": "capability",
"definition": "The ability to keep operating correctly despite the failure of some components."
},
{
"name": "Controlled Failure",
"kind": "capability",
"definition": "The ability to fail in a defined, handled way rather than crashing unpredictably."
},
{
"name": "Deny-by-Default Behavior",
"kind": "capability",
"definition": "The ability to default to denying access when a security check cannot complete."
},
{
"name": "Early Defect Detection",
"kind": "capability",
"definition": "The ability to surface a defect immediately at its source rather than letting it propagate."
},
{
"name": "Localized Recovery",
"kind": "capability",
"definition": "The ability to recover from a failure within its boundary without restarting the whole system."
},
{
"name": "Overload Protection",
"kind": "capability",
"definition": "The ability to protect a system from being overwhelmed by shedding or slowing incoming load."
},
{
"name": "Safe Failure",
"kind": "capability",
"definition": "The ability to fail without corrupting state or causing further damage."
},
{
"name": "Stability Under Stress",
"kind": "capability",
"definition": "The ability to keep functioning under load spikes and adverse conditions."
},
{
"name": "Transient Failure Recovery",
"kind": "capability",
"definition": "The ability to recover from short-lived failures by retrying the operation."
},
{
"name": "Backoff",
"kind": "technique",
"definition": "Progressively increasing the wait between retries to avoid overwhelming a recovering dependency."
},
{
"name": "Error Model",
"kind": "model",
"definition": "A structured representation of the kinds of errors a system can raise and how they are categorized."
},
{
"name": "Alternate Behavior",
"kind": "constraint",
"definition": "The requirement that a defined alternate behavior exist to use when the primary path fails."
},
{
"name": "Capacity Signaling",
"kind": "constraint",
"definition": "The requirement that downstream capacity be signaled upstream so producers adjust their rate."
},
{
"name": "Failure Isolation",
"kind": "constraint",
"definition": "The requirement that a failure be contained within a boundary so it cannot spread."
},
{
"name": "Failure Threshold",
"kind": "constraint",
"definition": "The requirement of a defined failure count or rate at which a circuit breaker trips."
},
{
"name": "Feature Isolation",
"kind": "constraint",
"definition": "The requirement that individual features be isolated so one can be disabled without taking down others."
},
{
"name": "Resource Isolation",
"kind": "constraint",
"definition": "The requirement that resources be partitioned so exhaustion in one pool cannot starve others."
},
{
"name": "Strict Output",
"distinctFrom": [
{
"id": "lexicon:tolerant-input",
"reason": "Strict output governs what a component emits, while tolerant input governs what it accepts."
}
],
"kind": "constraint",
"definition": "The requirement that a component emit only strictly conformant, well-formed output."
},
{
"name": "Timeout",
"kind": "constraint",
"definition": "The requirement that an operation be given a maximum time to complete before being abandoned."
},
{
"name": "Tolerant Input",
"kind": "constraint",
"definition": "The requirement that a component accept and cope with input that deviates from the ideal format."
},
{
"name": "Availability of Degraded Dependency",
"kind": "quality-attribute",
"definition": "The degree to which tripping a breaker to protect the system also cuts off a still-partly-working dependency."
},
{
"name": "Consistency / Feature Completeness",
"kind": "quality-attribute",
"definition": "The degree to which serving reduced functionality during failure sacrifices full consistency or completeness."
},
{
"name": "Hidden Errors",
"kind": "quality-attribute",
"definition": "The degree to which catching failures at a boundary can obscure the underlying errors from view."
},
{
"name": "Load Amplification",
"kind": "quality-attribute",
"definition": "The degree to which retrying failed operations multiplies load on an already-struggling dependency."
},
{
"name": "Slow Operation Tolerance",
"kind": "quality-attribute",
"definition": "The degree to which enforcing timeouts sacrifices tolerance for legitimately slow operations."
},
{
"name": "Stability",
"kind": "quality-attribute",
"definition": "The degree to which a system keeps operating steadily without collapsing under load."
},
{
"name": "Stale/Reduced Results",
"kind": "quality-attribute",
"definition": "The degree to which serving a fallback yields stale or reduced-quality results."
},
{
"name": "Strict Validation",
"kind": "quality-attribute",
"definition": "The degree to which rejecting deviant input conflicts with accepting it tolerantly."
},
{
"name": "Verbosity",
"kind": "quality-attribute",
"definition": "The degree to which pervasive defensive checks add verbosity and clutter to the code."
},
{
"name": "Introduce Typed Result",
"kind": "technique",
"definition": "A technique for returning success or a typed error as a value, so callers handle failure through the type system."
},
{
"name": "Translate Errors at the Boundary",
"kind": "technique",
"definition": "A technique for converting vendor and infrastructure errors into the core's own error types where they enter."
},
{
"name": "Idempotency Key",
"kind": "technique",
"definition": "A technique for tagging each request with a unique key, so a repeated request is recognized and applied once."
},
{
"name": "Bounded Retry",
"kind": "technique",
"definition": "A technique for retrying a failed call a limited number of times with growing delays before giving up."
},
{
"name": "Jitter",
"kind": "technique",
"definition": "A technique for adding a random offset to retry delays, so clients that failed together do not retry together."
},
{
"name": "Deadline Propagation",
"kind": "technique",
"definition": "A technique for passing the time left for a request to every call it makes, so downstream work stops when the caller has given up."
},
{
"name": "Cancellation",
"kind": "technique",
"definition": "A technique for letting a caller stop work it no longer needs, releasing the resources that work holds."
},
{
"name": "Load Shedding",
"kind": "technique",
"definition": "A technique for refusing part of the incoming work when load passes capacity, so the work already accepted completes."
},
{
"name": "Bounded Queue",
"kind": "technique",
"definition": "A technique for giving a queue a fixed capacity, so producers are slowed or refused instead of exhausting memory."
},
{
"name": "Fail Fast or Fall Back",
"kind": "technique",
"definition": "A technique for deciding per failure whether to stop with an error at once or to continue on a declared fallback."
}
]
}