Comparison
Fail fastvsFail open
Fail fast
you reject the request immediately when you already know the dependency is down, instead of making the caller wait for a timeout.
Returning an error as soon as failure is certain rather than proceeding hopefully. It frees the caller's resources and keeps queues from filling with doomed work. It is the behaviour a circuit breaker implements, and it is why validating inputs before doing expensive work is a resilience decision, not just a tidiness one.
Full entry →Fail open
the permissions service timed out and you had to decide, in advance, whether to let the request through or block it.
The choice of default behaviour when a check cannot be performed: fail open allows, fail closed denies. Availability-critical, low-risk checks fail open; anything protecting money, data or access fails closed. The dangerous case is not choosing, because the default is then whatever the exception handler happens to do.
Full entry →