All laws

38Distributed Systems

Two Generals Problem

Impossibility of Guaranteed Agreement.

If

Two parties communicating over an unreliable channel can never be certain they have reached agreement — every message needs an acknowledgment, which itself needs an acknowledgment, forever. No fixed number of messages yields common knowledge.

Then

Never assume "I sent it, so they got it." Make every cross-network action safely retryable and idempotent, and reconcile state instead of trusting a single round-trip.

Unless

Idempotency / Eventual Consistency / Acknowledged Retries

Improve this article on GitHub