One of the biggest technology buzzwords to emerge in the past several years is 'NoSQL.' Put simply, NoSQL has come to refer to any database management system that isn't a traditional RDBMB.
From Cassandra to CouchDB, there are a number of NoSQL systems that have attracted significant attention, and that are used in commercial applications, including some of the most popular consumer internet services.
But the honeymoon with NoSQL may be coming to an end.
These raise the question: has NoSQL been overhyped, and is the market for NoSQL systems much smaller than has been promoted? The answer to the former is almost certainly 'yes', but the answer to the latter is yet to be determined.
In looking at NoSQL and where it will settle in, it's important to keep the following in mind:
- NoSQL isn't perfect. Any experienced, competent technologist knows this. But that doesn't mean that claims haven't been perpetuated that might lead you to believe that NoSQL is the best thing since sliced bread. Some of these claims are false, but others have been misread by individuals who consider them without any context.
- Your developer isn't necessarily an architect. Your rockstar developer may be capable of building great things, but that doesn't mean that he or she is a great systems architect. To some extent, it's my opinion that NoSQL's growth has been propelled by adoption from developers who are less concerned about 'shiny new toy' syndrome than they should be. Savvy companies will inevitably figure out (or remember) that decisions over which technologies to use shouldn't be made by those with limited architectural experience.
- Scaling brings challenges -- no matter which systems you use. Many businesses, of course, will never have to deal with scaling challenges because their applications will never realistically have to scale to the point at which they appear. But even so, when planning for scale, it's worth considering the type of challenges you're likely to face, and what others have done to address them. RDMBSes aren't flawless, but there's a very good chance that any challenges you could conceivably run into will have been faced by many people who have come before you. With NoSQL, that may not be the case.
- Picking the right tool for the job is more important than picking the most appealing tool. At the end of the day, RDBMSes and NoSQL systems are tools for getting a particular job done. Period.
- Misuse is the greatest cause of FAIL. It's certainly possible that some NoSQL systems are so flawed that their practical applications are limited. But for the rest of the NoSQL systems out there, failure in real-world applications will typically be the result of companies applying them where they're not ideally suited.