NoSQL may be one of the most overhyped technology trends in the past couple of years, and a growing number of companies that left their relational databases behind for a NoSQL fling are rethinking their decisions.
Yet organizations continue to adopt NoSQL solutions and investors are still eager to pour money into vendors behind the most popular of them.
Are they crazy, or has some of the NoSQL skepticism been overdone?
The truth of the matter is that, hype aside, there is a role for NoSQL solutions to play in a world consumed by data, and increasingly companies are making smart decisions about when to use relational databases and when to turn to their NoSQL cousins.
For organizations facing NoSQL versus relational decisions of their own, here are five use cases where a NoSQL database may have a legitimate role to play.
1. Implementing caching layers
Relational databases, properly designed, implemented and optimized, can often be blazingly fast, but when every fraction of a second counts, removing unnecessary database dependencies is a good first step. When it comes to caching, a number of key-value stores excel. Perhaps the most popular, Memcached, is a favorite choice used by many of the world's most popular sites, but others, like Redis, are viable and increasingly popular for caching applications too.
2. Dealing with big, big data
Thanks to decreasing hardware costs, building a massive server for a relational database is an option for more and more companies. But vertical scaling has its limits, and horizontally scaling some of the most popular relational databases is often not easy, if it's possible at all. So when dealing with huge amounts of data, such as that generated by logging, analytics and finance applications, NoSQL solutions like Hbase and Cassandra are well worth a look.
3. Storing semi-structured data
Building a relational database that does what it's supposed to and performs acceptably requires developing a good schema. Unfortunately, thanks in large part to the rapidly increasing amount of semi-structured data that companies are gaining access to and looking to harness, developing schemas can be a challenge. This is where document-oriented NoSQL databases come in. From MongoDB and CouchDB, which use JSON and JSON-style documents, to MarkLogic, which is a native XML database, companies today have a growing number of ways to deal with information that simply isn't a fit for traditional databases.
4. Supporting high-availability (HA) services
While commercially viable replication and clustering solutions exist today for most of the most popular relational databases, a number of popular NoSQL databases were built from the ground-up with HA in mind and arguably make it more accessible to developers. Riak, for instance, supports clustering out of the box, and is designed to provide for write availability and prevent data loss even when multiple nodes in a cluster fail.
5. Building prototypes
With more and more companies looking to fail fast and fail often when launching new products, prototyping plays an increasingly important role in the development cycle at many organizations. Eliminating the need to set up a relational database is often a good way to speed the prototyping process more efficient. Here, NoSQL solutions like Redis, a key-value database which supports multiple data structures, can be a huge help.