Coda Hale’s post on the CAP theorem seems to have set of a flurry of Twitter activity. Justin Sheehy mentioned a talk he recently gave, Henry Robinson mentioned a post he wrote a while ago, Sergio Bossa and Edward Ribeiro have joined in, and so on. There’s a bit of a competitive aspect to it, everybody – most definitely including me – trying to claim the first/last/best word on the subject, but it’s all good.

Edward Ribeiro also points out that Daniel Abadi doesn’t seem to be going along with the consensus I mentioned earlier. I decided to go with the humorous response.

@edward_ribeiro Yeah, @daniel_abadi didn’t get the memo. Updates haven’t propagated everywhere yet. ;)

More seriously, though, there will always be holdouts. There will always be a few who are too ignorant to understand what Brewer was saying. There will always be some whose business interests or academic reputations are too dependent on a contrary view to admit some of the implications. Lastly, of course, there will always be trolls. Among people who actually try to do useful things with distributed systems, though, the consensus seems pretty broad. There are still differences of opinion about some of the minor points, such as whether CA systems are literally impossible or just highly undesirable. I’m in the highly undesirable group, myself. ;) Seriously, I’ve worked on systems that I’d characterize as CA, and their failure modes when faced with the inevitable partition have been more gruesome than total shutdown would have been. I can go into more detail if anyone wants, in a separate post. None of these differences have any practical import, though. They’re fun to argue about, preferably over beers, but regardless of whether people think CA is impossible or impractical nobody in their right mind is going to recommend them in most cases.

The last point is whether CAP really boils down to “two out of three” or not. Of course not, even though I’ve probably said that myself a couple of times. The reason is merely pedagogical. It’s a pretty good approximation, much like teaching Newtonian physics or ideal gases in chemistry. You have to get people to understand the basic shape of things before you start talking about the exceptions and special cases, and “two out of three” is a good approximation. Sure, you can trade off just a little of one for a little of another instead of purely either/or, but only after you thoroughly understand and appreciate why the simpler form doesn’t suffice. The last thing we need is people with learner’s permits trying to build exotic race cars. They just give the doubters and trolls more ammunition with which to suppress innovation.