It's 2015, the NoSQL hype is a distant memory and most of us are now assessing database systems on their own merits, measuring them against technical requirements and sometimes even using actual engineering techniques. So why are we still talking about "fault tolerance" as though the only possible fault is the complete failure of one or more nodes? The real world is rarely so simple; failure is often fuzzy and transient with nodes dropping in and out, timing out intermittently and returning unexpected responses. When it comes to databases the impact of these failures can be catastrophic if they are not handled appropriately.
Drawing on my experience operating Cloudant's database as a service platform (based on Apache CouchDB) I argue that the phrase "fault tolerant" is meaningless without further qualification and will present seven key questions that can help determine the real-world fault tolerance properties of a given data