jargon

Comparison

IdempotentvsPartial failure

Idempotent

you can safely run the same operation five times and the system ends up in exactly the state it would after one.

The property that applying an operation repeatedly has the same effect as applying it once. It is what makes retries safe, and retries are unavoidable in any networked system, because a timeout does not tell you whether the work happened. Idempotence is about the effect on state, not about the return value or the work performed.

Full entry →

Partial failure

the call timed out and you genuinely do not know whether the other side did the work or not.

The defining property of distributed systems: an operation can fail in a way that leaves its outcome unknown to the caller. Local function calls do not do this, which is why treating a remote call like a local one is the root of so many bugs. Idempotency keys and reconciliation exist because you cannot resolve the ambiguity, only make it harmless.

Full entry →

Related comparisons