<i>Every failed Google search means fewer ads served and advertisers charged</i><p>No, I just hit refresh a couple times or try again later. Same number of (successful) pageviews, same number of ad impressions.<p><i>every item a user can’t add to their shopping cart means fewer items sold</i><p>No, I try again later. Just like I do if something is out-of-stock.<p><i>every unprocessed credit charge risks a regulatory fine</i><p>So what just happened to that 24 hour window you mentioned for banking transactions?<p><i>The choice of availability over consistency is a business choice, not a technical one.</i><p>Right. Because it's safer for Citibank to approve a transaction that they shouldn't, than for them to process it five minutes late.<p><i>Given this economic context, it becomes clear why most practitioners at any interesting scale meet their business needs using highly-available, eventually consistent systems.</i><p>I thought it was because consistency usually costs a bit of performance, and at "interesting scale" that translates into significant hardware costs. Plus of course "interesting scale" apparently comes with "rockstar programmers", who prefer eventual consistency because it's a fun exercise in minimalism.