Graceful degradation

Graceful degradation means when a dependency fails or is slow, the system reduces functionality instead of failing entirely: e.g. show cached or default content, disable non-critical features, or return a partial response. The user still gets a useful result.

Degrade instead of fail

flowchart TB R[Request] --> C{Recommendation API} C -->|OK| Full[Full response] C -->|Down| Degrade[Use default / cache / skip] Degrade --> Partial[Partial but valid response] Full --> User[User] Partial --> User

Strategies

flowchart LR A[Primary service] -->|Fail| B[Circuit open / timeout] B --> C[Fallback path] C --> D[Cached / default / reduced]

Combine with circuit breakers and timeouts: when the circuit is open or the call times out, switch to the degraded path instead of failing the whole request.