There is a way around this limitation - although it may sound exotic: just make sure that there are no partitions when requests are served.
How? By simply doing the following:
- Queue requests (e.g., in JMS).
- Only process requests when there is no partition problem.
- Send responses asynchronously, for instance via email.
Since no partition (hopefully) lasts forever, this solution does not lead to livelock.
Also, note that quorum solutions exist to avoid that the complete cluster has to be up at the same time.
Is this the capitulation of CAP? Who knows…