I love it when a gnarly technical concept can be elegantly explained via a good analogy. In fact, I have found myself searching for these perfect analogies throughout my career.
I’ve been working on NoSQL projects of late, and found the following two articles – both with brilliant analogies — to be very helpful:
“Starbucks Does Not Use Two-Phase Commit” – This article is not about NoSQL databases per se, but it does illustrate the point that sometimes you can afford to lose a transaction or have your database in an inconsistent state temporarily.
“A Plain English Introduction to the CAP Theorem” – this is a brilliant explanation of the trade-offs you need to make when scaling a database: consistency, availability, and partition tolerance. If you’ve ever had a hard time wrapping your head around these concepts, this article will help.