What is Graceful Degradation?
Graceful degradation, told as a story about not closing the whole park just because one recommendation corner breaks.
One broken recommendation corner, and the whole park stopped letting guests in.The guests just turn around and leave.
When a small problem is wired to stop everything, the cost is huge.Losing guests costs a lot.
Turn off what matters less, keep the core rides running.A little less convenient, but the park stays open.
Compare the two parks.Keep the core on, and the park stays open.
Without deciding what's core beforehand, you can't choose it in a hurry.You have to decide it ahead of time, not in the moment.
Graceful degradation = deciding in advance what's core, so that when trouble hits you can switch off the extras while protecting the core to the end — letting the rest keep running when only part breaks.
A design principle where a failure in one part doesn't stop the whole system — non-essential features get disabled or swapped for a simple fallback, so the core keeps working. Often paired with mechanisms like bulkheads and circuit breakers.
When grown-ups say it
- Graceful degradation
- Letting the rest keep running when only part breaks. Instead of stopping everything, it makes things only a little less convenient.
- Core vs. non-core features
- What must exist, and what can be skipped. You have to sort this out ahead of time, or you can't choose it in a hurry.
- Fallback response
- A simple stand-in answer instead of the real one. Shows a default like "popular picks" instead of a real recommendation.
- Feature toggle / kill switch
- A switch that turns off just one feature. It can be switched off without redeploying any code.
- Partial outage
- A state where only part of things stop, not everything. This is exactly the state graceful degradation aims to protect.
- Bulkhead
- A partition that locks trouble inside one section. Like a ship's bulkhead — one flooded compartment doesn't sink the whole ship.
- Circuit breaker
- A device that cuts off something that keeps failing. Cutting it off keeps the failure from spreading further.
- SLO (Service Level Objective)
- The promise-target the core features must meet. Same idea as the promise the whole park keeps. → the people who keep the park open