Five services, one availability
The monolith was split into five services. Each deploys independently, each has its own team, and each is available 99.9% of the time on its own.
Rendering one page calls all of them, in a chain, synchronously. The page is up only when every link is, so its availability is the product of theirs — about 99.5%. Each service is down for roughly forty minutes a month. The page is down for about three and a half hours.
The split bought independent deploys and sold shared uptime.
Outside every boundary: Service B (99.9%), The arithmetic (0.999^5 = 99.5%), The page (99.5% together; FAILED: unavailable), Page request, Service C (reviews; FAILED: down), Service A (99.9%), an empty slot for the when C cannot answer Connections: Page request calls Service A (step 1) Service A calls Service B (step 2) Service B calls Service C (step 3) Service C calls The page — all four must answer (step 4) when C cannot answer controls The page (step 5)