There's no such thing as "choosing CA". You can't "choose" to not have partitions any more than you can "choose" to never have hard drives fail. The question is, when things fail (yes, when, not if) how does your system respond?
Alas, I'm in Vancouver, not San Francisco, so I can't attend and rant about this in person.
Take for example Riak, they chose "AP" which means the system will continue working just fine through a network partition at the expense of not giving a strong consistency guarantee (eventual consistency). That doesn't mean that the data isn't consistent at all, just that it isn't its main concern.
http://dbmsmusings.blogspot.com/2012/10/ieee-computer-issue-...
Quoting from the post:
"my past criticism of CAP not actually being about picking two of three out
of C (consistency), A (availability), and P (partition tolerance) due to the
fact that it does not make sense to reason about a system that is ‘CA’. (If
there is no partition, any system can be both consistent and available ---
the only question is what happens when there is a partition --- does
consistency or availability get sacrificed?)"That also struck me a little shady. Surely wait for them to explain that one.
BTW there is a fill-in-the blanks form for this created by Fred Hebert, it might apply here I am afraid:
If their goal is hardline 'C,' that means (pedantically) if a partition is detected, the database reports back to the application "database partition exists. denying all reads and writes until resolved."
If you can't tolerate a partition but still want to claim 'A' (where "tolerating" requires merging structured data cleverly with CRDT-like things ("eventually") or last write wins (or even better: random write wins (which is basically a traditional RDBMS approach))), then they can be read-avail and maybe report metadata back to the client you're in read-only mode due to partition crappage and data isn't going to update until partition crappage resolves itself. Look! It's available! I can read from it!
(notably: in Amazon's original Dynamo case, write availability was more important than read availability, which is where ESCAPE comes in ("Eventually Somewhat Consistently Available Partition tolerant Engine"))
I am going to the meetup (but am not otherwise associated with rethinkdb).
Obligatory Coda Hale reference:
A good explanation is here: https://foundationdb.com/white-papers/the-cap-theorem/