CAP-теорема (теорема Брюера) – положение теории распределённых систем, сформулированное Эриком Брюером в 2000 году и формально доказанное Сетом Гилбертом и Нэнси Линч в 2002 году. Оно утверждает, что распределённая система не может одновременно гарантировать три свойства:
- Согласованность (Consistency) – все узлы видят одни и те же данные в один момент.
- Доступность (Availability) – каждый запрос получает ответ.
- Устойчивость к разделению (Partition tolerance) – система работает при потере связи между узлами.
Практический смысл
Сетевые разделения в распределённых системах неизбежны, поэтому реальный выбор – между согласованностью и доступностью во время разделения:
- CP-системы отказывают в части запросов, но не выдают устаревшие данные.
- AP-системы отвечают всегда, но данные на разных узлах могут временно различаться.
Развитие
Модель PACELC дополняет CAP: даже без разделения система выбирает между задержкой и согласованностью.
Применение
Понимание CAP помогает выбирать СУБД и настраивать репликацию под требования приложения: для платежей важна согласованность, для ленты новостей – доступность.