the Two Generals problem
termprogrammingcloudnetworking
The proof that two parties on an unreliable channel can never be certain they agree to act together.
Two generals must attack simultaneously and can communicate only by messengers who may be captured; whichever confirmation is sent last, its sender cannot know it arrived, so no finite protocol reaches certain agreement, a result formalized in the 1970s. It is the bedrock impossibility beneath distributed transactions, exactly-once delivery, and every retry loop with idempotency keys. Its harder sibling, the Byzantine generals, adds traitors; real systems settle for probably-agreed, which is what timeouts and acknowledgments actually buy.