Delta: Highly available, strongly consistent storage using chain replication (2022)
engineering.fb.com
engineering.fb.com
How does the configuration spread consistently across the nodes? How does each node know if each link to the next node is still the most up-to-date, based on the configuration system. This part usually is waved away but it’s one of the trickier bits. Usually there is some paxos/raft/zookeeper system involved here.
Something I'm curious about: How does a recovering node know that it is healthy enough to serve requests? Is there some anti-entropy protocol used between the tail and the recovering node?
[1] https://www.usenix.org/legacy/event/usenix09/tech/full_paper...