
Dağıtık sistemlerin, yani birden fazla bağımsız bilgisayarın tek bir sistem gibi uyum içinde çalıştığı yapıların en büyük zorluğu, ortak bir eyalet (state) üzerinde fikir birliğine (konsensüs) varmaktır. Sunuculardan birkaçı çöktüğünde veya ağda gecikmeler yaşandığında, tüm makinelerin veri tabanına aynı veriyi, aynı sırayla yazmasını garanti etmek bilgisayar biliminin en kritik problemlerindendir. Bu problemi çözmek ve sistemlerin hataya dayanıklı (fault-tolerant) şekilde çalışmasını sağlamak için geliştirilen iki dev konsensüs algoritması, Paxos ve Raft protokolleridir. Bu iki algoritma, dağıtık sistemlerin temel yapı taşları olarak modern bulut altyapılarının ve veri tabanlarının omurgasını oluşturur.
Leslie Lamport tarafından 1989 yılında ortaya atılan Paxos, dağıtık sistemlerde konsensüs problemini matematiksel olarak çözen ilk ve en güvenilir algoritmadır. Google’ın Chubby servisinden ana veri tabanı mimarilerine kadar birçok devasa sistem Paxos teorisi üzerine inşa edilmiştir. Paxos'un temel felsefesi, ağdaki düğümlere belirli roller (Öneren, Kabul Eden, Öğrenen) vererek, iki aşamalı bir oylama (Prepare ve Accept) mekanizmasıyla tek bir değer üzerinde uzlaşma sağlamaktır.
Ancak Paxos’un en büyük zayıflığı, aşırı teorik, soyut ve anlaşılmasının inanılmaz derecede zor olmasıdır. Lamport’un akademik yaklaşımı, algoritmayı matematiksel olarak kusursuz kılsa da, mühendislerin bu teoriyi gerçek dünya yazılımlarına uygulaması (özellikle Multi-Paxos mimarisinde) tam bir kabusa dönüşmüştür. Paxos o kadar opaktır ki, birçok büyük teknoloji şirketi algoritmayı kodlarken kendi yorumlarını katmak zorunda kalmış ve bu da uygulamada teorideki kadar güvenli olmayan, yamalı sistemlerin doğmasına yol açmıştır.
Paxos’un bu pratik uygulama ve anlaşılma hantallığına tepki olarak 2014 yılında Stanford Üniversitesi araştırmacıları tarafından Raft algoritması geliştirilmiştir. Raft’ın tasarımındaki bir numaralı öncelik, Paxos ile aynı güvenlik ve performansı sunarken, "insanlar tarafından kolayca anlaşılabilir ve kodlanabilir" olmasıdır. Bugün Kubernetes ekosisteminin kalbi olan etcd'den Consul ve CockroachDB'ye kadar birçok modern teknoloji, Paxos yerine Raft protokolünü tercih eder.
Raft, konsensüs problemini daha küçük ve bağımsız alt problemlere (Lider Seçimi, Log Kopyalama ve Güvenlik) bölerek çözer. Paxos'un asimetrik ve dağınık oylama mantığının aksine Raft, tamamen güçlü bir lider (strong leader) modeline dayanır. Sistem her zaman ağdan bir lider seçer ve tüm istemci istekleri, log kayıtları ve kararlar sadece bu lider üzerinden hiyerarşik olarak diğer düğümlere (takipçilere) dağıtılır. Lider çöktüğünde ise sistem milisaniyeler içinde yeni bir seçim döngüsü başlatarak yeni liderini belirler. Raft, bilgisayar biliminde akademik bir teorinin, doğru bir pedagojik yaklaşımla ele alındığında endüstriyi nasıl hızla domine edebileceğinin en net ve başarılı örneğidir.