jargon

Comparison

DeterministicvsIdempotent

Deterministic

you run it twice with the same input and get byte-identical output, because nothing inside it reads the clock or a random number.

The property that the same inputs always produce the same output. It is about reproducibility, not about repeat-safety: a deterministic function can still be unsafe to run twice if it has side effects, and an idempotent operation can be non-deterministic in what it returns. Determinism is what makes replay, caching and testing possible.

Full entry →

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 →

Related comparisons