Три свойства
- Consistency — каждый запрос получает наиболее актуальный результат или ошибку
- Availability — каждый запрос получает ответ (необязательно наиболее актуальный)
- Partition Tolerance — система продолжает работать несмотря на сетевые сбои между узлами
Практика
Partition Tolerance обязателен для любой реальной распределённой системы — сеть всегда может отказать. Поэтому выбор: CP (MySQL, HBase, ZooKeeper) или AP (Cassandra, CouchDB, DynamoDB). MongoDB и Redis конфигурируется под обе модели.