Trong hệ phân tán, ba thuộc tính Consistency (mọi node đọc thấy dữ liệu mới nhất), Availability (mọi request đều có phản hồi), Partition tolerance (vẫn chạy khi mạng chia cắt) — không thể đảm bảo cả ba cùng lúc.
Vì partition (mạng lỗi) là điều bắt buộc phải chịu trong thực tế, lựa chọn thật sự là khi có partition thì ưu tiên C hay A:
- CP: từ chối/chờ để không trả dữ liệu cũ (ví dụ hệ ngân hàng, ZooKeeper).
- AP: vẫn trả lời nhưng có thể là dữ liệu cũ, hội tụ sau (ví dụ Cassandra, DynamoDB).
Mở rộng PACELC: cả khi không partition, vẫn phải chọn giữa latency và consistency.