Antimetal
BlogCareers
Sign InBook a Demo
BlogCareersSign InBook a Demo
Company
  • Careers
  • Blog
Resources
  • Docs
  • Guides
  • Glossary
  • Integrations
Compliance
  • Trust Center
  • Terms
  • Privacy
All Systems NormalBuilt in NYC

The Autonomous System for Production
SOC 2, GDPR, and HIPAA compliant.

GlossarySRE concepts

What is Graceful Degradation?

Graceful degradation is the design property where a system reduces functionality under failure or load instead of failing completely. Core capabilities keep working while non essential ones are shed.

SRE concepts2 min

Table of contents

  1. How graceful degradation works
  2. Why graceful degradation matters
  3. Limits and hidden risks
  4. Graceful degradation vs failover
  5. Key takeaways
  6. Frequently asked
On this page
  1. How graceful degradation works
  2. Why graceful degradation matters
  3. Limits and hidden risks
  4. Graceful degradation vs failover
  5. Key takeaways
  6. Frequently asked

#How graceful degradation works

It requires an explicit ranking of functionality by importance. A commerce site can lose recommendations, reviews, and personalization while checkout continues, but only if someone decided in advance which components are shed and which are protected.

The implementation uses fallbacks, feature flags, and load shedding. When a dependency fails, the calling code returns a reduced response rather than propagating the error. When load exceeds capacity, lower priority requests are rejected so higher priority ones still complete.

#Why graceful degradation matters

Partial service is almost always better than none, and the difference is frequently the difference between an incident and an outage.

  • Preserved revenue: core transactions continue while peripheral features are down.
  • Contained failures: one component failing does not take the whole product with it.
  • Reduced urgency: a degraded system can often wait for business hours.
  • Load survival: shedding low priority work keeps the system responsive under a spike.

#Limits and hidden risks

Degradation can be invisible, which is dangerous. If a feature silently returns empty results when its dependency fails, error rates stay clean and nobody notices that the product is broken. Every degraded path needs its own telemetry and usually a user visible indication.

Degraded paths also rot. Code that runs only during failures is rarely exercised, and a fallback that has not run in a year may not work when it is finally needed. This is one of the strongest arguments for chaos experiments.

#Graceful degradation vs failover

Failover replaces a failed component with a healthy equivalent: another replica, another region, another provider. Full functionality is preserved and the requirement is having a redundant copy available.

Graceful degradation reduces functionality when no equivalent is available. If a recommendation service is down everywhere, failover has nothing to switch to, and degradation means showing the page without recommendations. Failover handles infrastructure failure, degradation handles capability failure, and a system needs both because not every capability can be made redundant.

#Key takeaways

  • Degradation requires an explicit ranking of which functionality is shed and which is protected.
  • Fallbacks, feature flags, and load shedding are the implementation mechanisms.
  • Silent degradation is dangerous, so every degraded path needs telemetry and usually a user visible signal.
  • Failover handles infrastructure failure with redundancy; degradation handles capability failure without it.

#Frequently asked

How do you decide what to degrade?

Rank functionality by user and business value in advance. The decision cannot be made sensibly during an incident.

Should users be told the system is degraded?

Usually yes for functionality they would notice. Silent degradation produces confusion and support load that a brief message prevents.

How do you keep degraded paths working?

Exercise them deliberately through chaos experiments or scheduled tests. Code that only runs during failures is code that has not been tested.

Related terms

  • Circuit Breaker

    SRE concepts
    2 min

    A circuit breaker stops calls to a failing dependency after a threshold of failures, returning an error immediately instead of waiting for a timeout.

  • Code Resilience

    AI & automation
    2 min

    In this glossary, code resilience refers to the property of software that continues to function acceptably when its dependencies fail, its inputs are…

  • Chaos Engineering

    SRE concepts
    2 min

    Chaos engineering is the practice of deliberately injecting failures into a system to discover weaknesses before they surface on their own.

  • Blast Radius

    Incident management
    2 min

    Blast radius is the extent of what a failure or change can affect.

PreviousGolden SignalsNextIncident