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).