My call timed out — now what?

Answer questions about the system — what it must guarantee, what can fail, what each node can know — never about a product. You arrive at a primitive together with the guarantee it actually offers, the guarantees it refuses, the trade-offs you are buying, how it fails in production, and the simpler thing to weigh first.

This tree starts from an observation rather than a requirement, because that is how most engineers actually arrive at this material. Something timed out, nobody is sure what happened, and the next decision determines whether the system is merely slow or quietly corrupt. The one thing you cannot do is assume it failed.

If the operation did run, and you run it again, what happens?

How to answer honestly · Assume it ran. That is usually the more likely case for a service with a high success rate — a timeout is far more often a lost response than lost work.