Building resilience in Spokes

This post introduces the renaming of DGit to Spokes and details the engineering efforts to build resilience in the system. It defines resilience in terms of availability and durability, emphasizing the CAP theorem and Spokes' prioritization of consistency and partition tolerance. The post elaborates on availability by describing how Spokes detects and routes around server and network failures using a combination of heartbeats and real application traffic, employing an MxN failure detection system. For durability, it explains the use of replication (at least three copies in different racks) and a majority-based consensus protocol for writes to ensure data integrity and prevent conflicts, even during concurrent writes or server failures. It also describes the automatic repair process for unhealthy replicas.