Ch. 19 · System Design

System Design Graceful Degradation and Correctness

System Design Graceful Degradation and Correctness. Learn the reasoning, a practical example, common mistakes and an interview exercise.

~2 min readadvancedupdated Oct 3, 2026

Degradation preserves useful behavior when a dependency fails. Fallbacks must respect the meaning of the data, not merely return something.

Before you start

You should understand API requests, storage and basic capacity estimates. Begin with a concrete user action and its correctness requirement. Draw data flow and failure boundaries before selecting infrastructure; a technology name by itself does not explain why a design meets the requirement.

The practical goal is to reason through this situation: A recommendations outage can show a simpler list while checkout remains available. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.

Step-by-step walkthrough

Step 1: Identify optional functionality

Recommendations can fail without invalidating checkout.

Step 2: Choose truthful fallback

A simpler list can remain useful under known constraints.

Step 3: Protect authoritative decisions

Do not fabricate payment or authorization success to maintain apparent availability.

Worked scenario

A recommendations outage can show a simpler list while checkout remains available.

A recommendation outage falls back to popular products, with checkout still functioning. A payment provider outage returns a controlled pending or failed outcome according to the payment workflow. Reusing an old ‘authorized’ result as a universal fallback can violate correctness even if it avoids an error screen.

Common mistake

Stale authorization or payment data can be an unsafe fallback.

Verify the behavior

Fail optional and critical dependencies separately and verify distinct user outcomes.

Interview exercise

Choose a valid fallback.

Answer and reasoning

Identify optional functionality and acceptable stale data explicitly, while failing clearly for decisions requiring authoritative correctness.

Continue learning

Compare the scenario with the System Design interview questions and test your understanding with the System Design MCQs. For terminology and implementation details, consult the reference material.

More in System Design

read ✓System Design · hard

System Design: Bloom Filters

Use a Bloom filter to skip lookups with a tiny memory footprint, and understand its false-positive-only guarantee.

~2 min readread →
read ✓System Design · hard

System Design: Idempotent APIs

Make retried requests safe with idempotency keys, store the result per key, and return the original response on a repeat.

~2 min readread →
esc