Availability in CAP Theorem is about the hosts that are on either side of the partition, not about the system as a whole.
In CAP Theorem you are "Available" if all hosts on either side of a network partition can continue to accept both read and update transactions. Most of our customers don't care if all hosts remain available in the face of a network partition. They care that the database as a whole remain available during a network partition. So if the cluster has replicated or shared data so that there is enough data on both sides of the partition to continue to serve queries, and is smart enough to know which side of the partition should remain available and which should gracefully bow out, then the database can remain available in the face of a network partition, even if all hosts do not. That's what MarkLogic does within a cluster.
Between clusters, MarkLogic has many options for how close to absolutely consistent you want to be. We use asynchronous replication to move data between clusters, so there if there is a network partition between clusters, the data may not be consistent between those clusters. You can control how long that lag limit is so that you can tune this, and if you need absolute consistency between clusters, we have ways of achieving that as well.
Bottom line is that:
- Customers care mostly that their database or data services remain available, not that any specific host remain available, so we focus on availability of the system and can provide that without violating CAP Theorem.
- Multi-cluster MarkLogic deployments can be tuned to give you the right balance of consistency and availability in the face of a network partition.
Hope that helps.