concept

Availability Arithmetic

Multiplying dependency availabilities in series and combining redundant components in parallel to derive a system's achievable availability.

Series (all must work): multiply. Ten dependencies at 99.9% each give 99.9%^10 ≈ 99.0% — about seven hours a month, not forty-three minutes. This single calculation explains why a microservice estate with a deep synchronous call chain cannot meet the availability of its individual components.

Parallel (any one suffices): multiply the failure probabilities. Two 99% components in parallel give 1 − 0.01² = 99.99% — provided failures are independent.

Independence is where the arithmetic lies. Two instances in the same rack, on the same power, in the same zone, running the same version, sharing a configuration store: correlated. Shared dependencies, shared code and shared deployment pipelines are the usual sources, and none appear in the formula.

Three practical uses: setting a realistic SLO from a dependency inventory, identifying which dependency dominates the number, and demonstrating that asynchrony removes a dependency from the series — a call replaced by a queued event no longer multiplies into the availability of the request path.