&quot;Here fsync at every write is mandatory because if nodes go down and restart, they MUST have the latest value of the “current” key.&quot;<p>Why could not a node that is restarting, simply do the algorithm and set its own &quot;current&quot; from the $NEXTID it gets? In other words, a single failed-restarting node does not need to rely on having a recent disk value for &quot;current&quot;, as long as it can call on a majority of non-failed nodes.<p>Only if _all_ nodes failed (a system-wide crash) and had to restart, the consensus value of &quot;current&quot; might be less than some (possibly all, if it reset to 0) IDs that were issued prior to the crash.<p>However there could be a protocol for recovery from a system-wide crash, requiring all nodes, before they go on-line, to scan their most recent ID-stamped transactions and start their &quot;current&quot; at the maximum seen. Then following this disaster you might issue IDs that were less than some that were issued pre-crash, but it would not matter if none of the &quot;lost&quot; IDs were never recorded in transactions.