jargon

Comparison

ConvergencevsIdempotent provisioning

Convergence

the first run fails on something, the second gets further, and the third finally settles — and everybody calls that normal.

The idea that repeated runs move a system progressively closer to the declared state until they stop changing anything. It is a real property of well-built systems and a common excuse in badly-built ones, where re-running until it works is covering an undeclared dependency. A configuration that has genuinely converged produces an empty plan, and that empty plan is the only proof.

Full entry →

Idempotent provisioning

you ran the whole thing again after a network error and it created nothing new, because everything it wanted already existed.

The property that applying a configuration repeatedly converges on the same result rather than accumulating duplicates or errors. It is what makes automation safe to retry, and it is the practical reason declarative tooling won over scripts. It is also easy to break by hand, with a provisioner step that appends to a file or generates a random name on every run.

Full entry →

Related comparisons