in this day and age, are there more useful concepts that we could be giving more attention than CAP, ACID, and friends? Are they useful enough to satisfy the dfsdt principle? I think not.
CAP is useful to the extent that: we are not fully enumerating and reasoning about failure cases.
This might put (or keep) a developer in the mindset that they can code a series of imperative instructions to build their minimal viable product, and then come back and tighten things up later. DB={} Q={}
I would like to either remain in the starting state, or enter a new state: DB={Bob paid $15} Q={Bob paid $15}
But this is Two Generals, which is impossible. DB={locked} Q={locked}
DB={locked; Q={locked;
Bob paid $15} Bob paid $15}
DB={locked; Q={locked;
Bob paid $15; Bob paid $15;
unlocked} unlocked}
A strictly harder problem, right?
Workers are demanding to stay inside (with their AC) instead of going outside.