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:

  1. 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.

  2. 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.