I've been trying to explain to a new-comer of NoSQL what all the fuzz is about. It was also very difficult to understand, after the first hit given by the names of big companies using these new databases, for me too. Ok, they are fast, the don't need sharding, ops teams, trallala and so on. They MUST be cool if you're even able to accept the fact that your consistency will be eventual. In a database... That would have sounded weird back at university, 7 years ago.
Structurally speaking, they are multilevel treemaps (kind of, at least Cassandra). Nothing fancy, just something from the 60ies. Hashmaps are just the quickest way to get data after an array. Which sounds very good for a database. Gossip p2p replication protocol is also something very elegant but as simple as possible, so you can have your multilevel maps available and redundant (again, Cassandra. HBase and BigTable make it even simpler relying on a distributed filesystem!). Ok, what's more? Nothing. That's it. So the next question is now: Why haven't we thought about it earlier? Why have we spent decades trying to make it more complicated instead of simpler? The aforementioned new-comer expects some juice and I can't provide any.
Ok, I don't see banks going to NoSQL in the short-run, it's a nice model for a database with simple schemas like web-apps. I can think easily of an usage of a NoSQL for twitter, digg etc., maybe tougher for a Bank. But maybe again it's my 20th century brain. How can I optimize my schema? Simple: don't have one. Mhm...
So, when and why did this switch of paradigm happen? I believe because there was no other possibility. The system just did not scale anymore. It wasn't just necessary, it was obvious. That's exactly what happened to low-cost (aka No-frills) carriers here in Europe in this last decade. The demand for connections between cities, often and quickly, without all the fuzz that nobody cares about, at least for short flights (read: simple service) just brought Ryanair, Easyjet etc to cut the unnecessary. And keep the planes doing the things they could do best, as long and as often as possible (to be honest, the business model of low-cost carrier flights comes from the 70ies, introduced by Herb Kelleher of SouthWest. Read more).
I believe the analogy between NoSQL and RyanAir, although provocative, fits pretty well and it helps me explain this whole new trend in distributed database systems. Just let me know what you think.
Note: As my friend Matteo pointed out, the analogy would work better if the low-cost carriers would offer an "eventual landing" with the flight ticket...
So, where do you go now?