Envoy supports marking certain endpoints as degraded, meaning that they are able to receive traffic, but should only receive traffic once there are not sufficient healthy hosts available.
Routing to degraded hosts can be thought of as routing to hosts in a lower priority. As hosts in higher priorities go unhealthy, traffic spills down to lower priorities. As the amount of healthy hosts available is no longer sufficient to handle 100% of the load, traffic will spill over to degraded hosts using the same mechanism as priority spillover for healthy hosts. This ensures that traffic is gradually shifted to degraded hosts as it becomes necessary.
|P=0 healthy/degraded/unhealthy||Traffic to P=0 healthy hosts||Traffic to P=0 degraded hosts|
Endpoints can be marked as degraded by using active health checking and having the upstream host return a special header.