Часто при обсуждении с коллегами сталкиваюсь с упоминанием теоремы CAP.
C - consistency
A - availability
P - partition tolerance
Напомню она гласит, что распределенная система может гарантировать 2 из 3х вышеперечисленных.
С буквой С aka "согласованность" - у нас более менее все понятно - на всех узлах у нас одна и та же информация.
А вот с буквами A и P - ситуация выглядит немного иначе. И порой можно услышать "у нас вместе с С будет и A и P и вообще какая разница, главное чтобы С".
Может показаться, что A и P имеют общую смысловую нагрузку и взаимосвязь: доступность, а как же получить это доступность без возможности разделять на партиции, но это не так.
Отличие кроется в потребителе конкретного свойства - для кого это:
- A. Доступность. Приоритет: доступ без сбоев из вне. Потребитель: конечный пользователь
- P. Устойчивость к разделению. Приоритет: выживание системы при авариях. Потребитель: инфрастуктура