Skip to main content

Posts

Showing posts from May, 2021

Achieving global total order in distributed systems without Sequencers

A seminal question to answer in a distributed event driven "fault tolerant" system is how to recreate state should there be a need for fault tolerance and recovery.  A typical and easy to rationalize approach is the assignment of a globally increasing sequence to the events flowing across the system. The intent is to bring a global "order" or "sequence" into the system. Later on this global ordering will pave the way for a resilient yet distributed system.  It will be: predicable - replaying the events from message commit logs will always produce the same net effect. reliable and fault tolerant - as long as there are commit logs maintained, faults recovery and late joining protocols will always have a way to catch up. The question then turns to " who should assign the order or sequence "? This post attempts to answer the 2nd question in an expository style (and will not delve into details). .......................................................