Comparison
Eventual consistencyvsReconciliation loop
Eventual consistency
you write to one node, read from another a moment later, get the old value, and it is correct a second after that.
A guarantee that replicas converge if writes stop, with no bound stated on how long that takes. It is what asynchronous replication gives you, and it is fine for most read paths. It is not fine anywhere a user reads back their own write, which is why read-your-writes is usually bolted on top rather than assumed.
Full entry →Reconciliation loop
something reads the difference between what you asked for and what exists, takes one step to close it, and then does it all again forever.
The pattern every controller implements: observe actual state, compare to desired state, act, repeat. It is level-triggered rather than edge-triggered — it looks at where things are, not at what event just happened — which is why a missed message or a crashed controller is self-healing rather than fatal. It also explains the characteristic feel of these systems: nothing fails outright, things simply stay wrong while something retries, so timeouts and events matter more than error codes.
Full entry →