Availability Calculation
Deriving a system's availability from its components, remembering that dependencies in series multiply.
Components in series multiply: a service at 99.9% that synchronously depends on three others at 99.9% each has a ceiling of about 99.6%, or roughly three hours of downtime a month. Adding dependencies makes availability worse, always, and a chain of six is difficult to keep above three nines however good each link is.
Redundancy in parallel does the opposite: two independent components at 99% give 99.99%, provided the failures really are independent — which shared power, a shared control plane, a shared configuration push or a shared library rarely are.
The two design levers that follow are: remove synchronous dependencies from the critical path (cache, queue, degrade), and make the redundancy genuinely independent rather than nominally so.