Define health as a chain, not a single gauge
At 18:07, the Johannesburg API was still returning a healthy 200 status. The incident started elsewhere: a brief utility interruption switched a rack to battery power, packet loss appeared between the data centre and a cloud database, and…