NoSQL Database Deployments: 10 Real-World Examples
NoSQL Database Deployments: 10 Real-World Examples
by Chris Preimesberger
Managing session information using relational technology has been a pain point for many Web application developers, especially as applications have grown in scale. In those cases, a global session store—i.e., one that manages session information for each user who visits the Website—is the right approach, and NoSQL has emerged as one of the best options for storing Web app session information. This is due in part to the key value storing properties of NoSQL databases: The unstructured nature of session data is easier to store in a schema-less document than in a structured (and more rigid) RDBMS record. In addition, low-latency access to session data is critical for ensuring a great user experience.
User Profile Store
All Web applications require user profiles and the ability to log in. A global user profile store is another example of where the key value characteristics of NoSQL come into play. A NoSQL database can store the user IDs, user preferences, multiple ID mappings and additional user information so that the app can quickly look up a user and authenticate access. Given the importance of this functionality to any Web app, the "always on" and scale-out characteristics of NoSQL are essential. TuneWiki recently drafted a blog post about how it uses NoSQL as a user profile store.
Content and Metadata Store
Companies such as McGraw-Hill need a place to store text-heavy data such as digital content, articles and ebooks to integrate different learning tools into a single platform. For content-driven applications, metadata is the most heavily accessed data that needs low response times. Using NoSQL—and particularly document databases—for building custom content-driven applications gives the flexibility not only to store a wide variety of content but also to provide fast access to it.
App developers' ability to update and enhance mobile apps—quickly and without service disruption—is critical to user adoption and loyalty. Because NoSQL databases can store user information and application content in a schema-less format, developers can quickly modify apps without major database infrastructure changes. That means users experience no interruption to application uptime. Some popular companies that take advantage of NoSQL for their mobile apps are Kobo and Playtika, both of which serve millions of users across the globe.
Third-Party Data Aggregation
Often a business needs to access information generated by a third party. For example, a consumer packaged goods company might need to gather point-of-sales data from grocery stores as well as shoppers' purchase history data from loyalty program managers. In these cases, NoSQL is a great fit because typically NoSQL databases can handle large volumes of data being ingested at high speeds, whether it's from social media, data feeds from users or other data providers.
High Availability Cache
It's common to find a caching tier—often based on memcached—used alongside relational technology in back-end Web infrastructure for caching application objects, popular search results, session information and high-traffic Web landing pages. However, caching tiers aren't without their problems, whereas certain NoSQL solutions provide high availability and scalability that typical caching solutions lack. Often the use of NoSQL as a caching tier evolves to the use of NoSQL for both a cache and a data store, eliminating the need to maintain two layers of data management software. Orbitz chose to use NoSQL to replace its caching tier.
Globally Distributed Data Repository
Organizations are generating enormous volumes of data spread across different systems. Using NoSQL as a data repository allows users to not only bring this information together but to better understand and use the information. With their real-time access, scalability and flexible data model that accommodates a wide variety of data types, NoSQL document databases can be a great fit to build such platforms.
E-commerce companies live and die by seasonal swings. Come Christmastime, users are scrambling to purchase last-minute gifts online or through mobile purchasing apps, creating a massive spike in usage. The ability to handle these spikes—without overinvesting in infrastructure—is critical to ensuring a pleasing shopper experience and minimizing abandoned purchase transactions (and lost revenue). NoSQL is a good fit for this use pattern because of its dynamic scalability (the ability to scale up to accommodate increased user activity and to scale down as user activity subsides). Companies such as The Hut Group depend on NoSQL to get them through the holiday rush.
Social games are data-intensive applications that can explode from zero to millions of players literally overnight. That kind of rapid growth, both in terms of data volume and number of users, necessitates the right class of database to store all that information and scale to a growing user base. NoSQL provides scalability, consistently high performance, always-on 24x365 operations and a flexible data model. Some of the most popular social and mobile games come from the likes of Zynga, Electronic Arts, Tencent and Shuffle Master, which are all powered by NoSQL.
Selecting an ad to display or an offer to present on a Web page is a choice with direct revenue impact. To decide where to place such ads and what groups to target, ad platforms collect behavioral, demographic and psychographic characteristics of users—and they have at most about 40 milliseconds to do so. A NoSQL database enables ad platforms to track user attributes and also access ads to place extremely quickly, increasing the probability of a click. Examples of ad targeting platforms utilizing NoSQL include those from AOL, Mediamind and PayPal.