CAP Teoremi

"Dağıtık bir sistem sadece ikisini mükemmel seviyede aynı aynı anda garanti edebilir: Tutarlılık, Erişilebilirlik ve Bölünme Toleransı."

Açıklama:
Modern bulut mimarilerinde (Mikroservisler, Dağıtık DB'ler) her şeyin mükemmel olması fiziken imkansızdır.

  • Consistency (Tutarlılık): Tüm sunucular (node) aynı veriyi mi görüyor?
  • Availability (Erişilebilirlik): Sistem her isteğe cevap veriyor mu?
  • Partition Tolerance (Bölünme Toleransı): Ağ kopsa bile sistem ayakta mı?

Ağ kopmaları her zaman yaşanacağı için (P her zaman vardır), mimarlar ya "Tutarlılık" (CP - Örn: MongoDB/HBase) ya da "Erişilebilirlik" (AP - Örn: Cassandra) seçmek zorundadır. Örneğin, banka hesabınız CP olmalıdır (Yanlış bakiye görmektense sistem hata versin istenir). Twitter zaman akışı ise AP olmalıdır (Bazen eski tweeti görebilirsiniz ama site hep açıktır).