# Architecture principles whose category is Error Handling / Resilience

> 16 records

This index as JSON: https://banes-lab.com/json/api/facets/architecture/category/error-handling-resilience

## Entries

- [Defensive Programming](https://banes-lab.com/records/architecture/defensive-programming.md): A design rule that code checks its inputs and assumptions before acting on them, and reports a violation as an explicit error.
- [Fail Fast](https://banes-lab.com/records/architecture/fail-fast.md): A design rule that invalid input or state stops the operation at the point it is detected, with an explicit error.
- [Fail Safe](https://banes-lab.com/records/architecture/fail-safe.md): A design rule that a failing operation leaves the system in the state that causes the least harm.
- [Fail Secure](https://banes-lab.com/records/architecture/fail-secure.md): A design rule that an authentication or policy failure denies access.
- [Graceful Degradation](https://banes-lab.com/records/architecture/graceful-degradation.md): A design rule that the failure of an optional dependency removes only the feature it serves, and the rest of the system keeps working.
- [Fault Tolerance](https://banes-lab.com/records/architecture/fault-tolerance.md): The degree to which a system keeps operating correctly when some of its components fail.
- [Resilience](https://banes-lab.com/records/architecture/resilience.md): The degree to which a system contains failures, stays stable under stress and recovers.
- [Robustness Principle](https://banes-lab.com/records/architecture/robustness-principle.md): A design rule that a component is strict in what it sends and tolerant of harmless variation in what it receives.
- [Error Handling](https://banes-lab.com/records/architecture/error-handling.md): A design rule that every error is either handled with its context kept, or propagated as a typed error the caller must handle.
- [Error Boundaries](https://banes-lab.com/records/architecture/error-boundaries.md): A design pattern that catches failures at a component boundary, so a failing part renders or returns an error while the rest keeps running.
- [Fallback Pattern](https://banes-lab.com/records/architecture/fallback-pattern.md): A design pattern that routes a failed call to an alternate provider or response declared in advance.
- [Retry Pattern](https://banes-lab.com/records/architecture/retry-pattern.md): A design pattern that repeats an idempotent call after a transient failure, a bounded number of times with backoff.
- [Timeout Pattern](https://banes-lab.com/records/architecture/timeout-pattern.md): A design pattern that gives every external call a time budget and fails the call when the budget runs out.
- [Circuit Breaker Pattern](https://banes-lab.com/records/architecture/circuit-breaker-pattern.md): A design pattern that stops calling a dependency after repeated failures and probes it again after a wait.
- [Bulkhead Pattern](https://banes-lab.com/records/architecture/bulkhead-pattern.md): A design pattern that gives each workload its own pool of threads or connections, so one workload cannot exhaust the others.
- [Backpressure](https://banes-lab.com/records/architecture/backpressure.md): A mechanism that lets a consumer signal its capacity, so a producer slows down when the consumer falls behind.
