Error Handling / Resilience
Kind: category
Record: architecture-category:error-handling-resilience
Canonical: Ontology
The Error Handling / Resilience category holds 16 architecture principles.
Listed in Principle categories, after Event / Messaging / Asynchronous Architecture and before Architecture Review / Evolution / Governance Artifacts.
Principle
- Defensive Programming
- Fail Fast
- Fail Safe
- Fail Secure
- Graceful Degradation
- Fault Tolerance
- Resilience
- Robustness Principle
- Error Handling
- Error Boundaries
- Fallback Pattern
- Retry Pattern
- Timeout Pattern
- Circuit Breaker Pattern
- Bulkhead Pattern
- Backpressure
Layer
Linked from
Error Handling / Resilience
Every principle in this category is listed as a record. Each record carries its kind, its severity, the scopes it applies at and the layer it lives in, then the edge relations that join it to other records, the records that point back at it, the contracts that answer to it and the tensions it takes part in. The descriptors say how it is violated, detected, measured, repaired and enforced. Where the record carries one, an exemplar shows the shape before and after the principle is applied.
Relations diagram
flowchart LR
n_defensive_programming["Defensive Programming"]
n_fail_fast["Fail Fast"]
n_fail_safe["Fail Safe"]
n_fail_secure["Fail Secure"]
n_graceful_degradation["Graceful Degradation"]
n_fault_tolerance["Fault Tolerance"]
n_resilience["Resilience"]
n_robustness_principle["Robustness Principle"]
n_error_handling["Error Handling"]
n_error_boundaries["Error Boundaries"]
n_fallback_pattern["Fallback Pattern"]
n_retry_pattern["Retry Pattern"]
n_timeout_pattern["Timeout Pattern"]
n_circuit_breaker_pattern["Circuit Breaker Pattern"]
n_bulkhead_pattern["Bulkhead Pattern"]
n_backpressure["Backpressure"]
n_defensive_programming --> n_error_handling
n_defensive_programming --> n_fail_fast
n_fail_fast -.-> n_graceful_degradation
n_fail_safe --> n_resilience
n_graceful_degradation --> n_fault_tolerance
n_fault_tolerance --> n_error_handling
n_fault_tolerance --> n_resilience
n_resilience --> n_fault_tolerance
n_error_handling --> n_resilience
n_error_boundaries --> n_resilience
n_fallback_pattern --> n_graceful_degradation
n_retry_pattern --> n_fault_tolerance
n_circuit_breaker_pattern --> n_fault_tolerance
n_circuit_breaker_pattern --> n_backpressure
n_backpressure --> n_resilienceDefensive Programming
- Kind: principle
- Category: Error Handling / Resilience
- Severity: mandatory
- Scope: function, module, boundary
- Layer: Correctness Core
Fail Fast
- Kind: principle
- Category: Error Handling / Resilience
- Severity: recommended
- Scope: input, startup, invariant boundary
- Layer: Correctness Core
Fail Safe
- Kind: principle
- Category: Error Handling / Resilience
- Severity: mandatory
- Scope: runtime, operation, security
- Layer: Correctness Core
Fail Secure
- Kind: principle
- Category: Error Handling / Resilience
- Severity: mandatory
- Scope: auth, access, infrastructure
- Layer: Correctness Core
Graceful Degradation
- Kind: principle
- Category: Error Handling / Resilience
- Severity: recommended
- Scope: service, UX, system
- Layer: Correctness Core
Fault Tolerance
- Kind: quality-attribute
- Category: Error Handling / Resilience
- Severity: contextual
- Scope: service, system, infrastructure
- Layer: Correctness Core
Resilience
- Kind: quality-attribute
- Category: Error Handling / Resilience
- Severity: contextual
- Mandatory for: production systems
- Scope: service, system, infrastructure
- Layer: Correctness Core
Robustness Principle
- Kind: principle
- Category: Error Handling / Resilience
- Severity: contextual
- Scope: protocol, API, input processing
- Aliases: Postel's Law
- Layer: Correctness Core
Error Handling
- Kind: principle
- Category: Error Handling / Resilience
- Severity: mandatory
- Scope: function, module, service
- Layer: Correctness Core
Error Boundaries
- Kind: pattern
- Category: Error Handling / Resilience
- Severity: recommended
- Scope: component, UI, service boundary
- Layer: Correctness Core
Fallback Pattern
- Kind: pattern
- Category: Error Handling / Resilience
- Severity: contextual
- Scope: service, dependency call
- Layer: Correctness Core
Retry Pattern
- Kind: pattern
- Category: Error Handling / Resilience
- Severity: contextual
- Scope: network, IO, message handling
- Aliases: Retry
- Layer: Correctness Core
Timeout Pattern
- Kind: pattern
- Category: Error Handling / Resilience
- Severity: mandatory
- Scope: network, IO, dependency call
- Layer: Correctness Core
Circuit Breaker Pattern
- Kind: pattern
- Category: Error Handling / Resilience
- Severity: contextual
- Scope: dependency call, service
- Aliases: Circuit Breaker
- Layer: Correctness Core
Bulkhead Pattern
- Kind: pattern
- Category: Error Handling / Resilience
- Severity: contextual
- Scope: resource pool, service, runtime
- Layer: Correctness Core
Backpressure
- Kind: mechanism
- Category: Error Handling / Resilience
- Severity: contextual
- Mandatory for: high-load systems
- Scope: stream, queue, service
- Layer: Correctness Core