rivetlogic casestudy cms scalability socialcollaboration opensource
Guest post: Why Rivet Logic chose MongoDB for its social engagement platform
Russ Danner is Practice Lead for Rivet Logic's Web Experience Management team. He is responsible for client relations, business development, and project management for the company's growing business. Web content management systems (CMS) have been evolving for over 20 years. The initial mission of web CMS solutions was to provide self-service authoring and publishing capabilities and to support dynamic content and functionality for websites, and to accomplish this most web CMS solutions have relied on traditional relational databases (RDBMS). This wasn't because they were a particularly good fit, but rather because they were widely available, well understood and offered the ability to perform queries. However, relational databases have proven difficult to scale out and are far too rigid for the evolving needs of an information architecture used to construct and and support a website over time. So what's the best database for a web CMS? The ideal type of store for content management-related systems from web CMS to social capabilities is a store that has support for queries but is easy to scale out horizontally and has a flexible approach for describing and evolving content entities. This is the sweet spot for document-oriented "NoSQL" databases like MongoDB. The reason MongoDB is much more scalable than a relational database is because of a number of design trade-offs that eliminate constraints that relational databases typically run in to. Unlike a traditional database, MongoDB does not provide support for transactions across data sets and does not allow for joins. MongoDB is document-oriented which means that content entity definitions are flexible and can change over time. Updates to documents are atomic. These design decisions are well-aligned with web CMS-related projects. By way of example, Rivet Logic has developed Crafter Social . Crafter Social is an open source, CMS application specifically focused on managing and delivering social content built on top of MongoDB, a market that is expected to boom . Crafter Social makes it extremely easy to integrate user-generated content such as comments, ratings, blogs, and other social engagement features to an enterprise website, whether new or existing. Rivet Logic chose to build Crafter Social on top of MongoDB for three key reasons. Open source . MongoDB is the world's most popular and powerful open source "NoSQL" database . Architecture . Unlike a traditional RDBMS that is oriented around strongly defined tables, MongoDB is document-oriented and offers a dynamic schema model. MongoDB's dynamic schema approach provides Crafter Social with a wide range of flexibility than can support both current and future needs. Scalability . Social collaboration, even in small deployments, can generate large volumes of data and high record counts. MongoDB operates beautifully at scale; able to hold billions of documents, powering thousands of writes per second and a much larger number of reads. MogoDB’s replication is a perfect fit for large-scale social content storage. In this way, Rivet Logic is able to keep Crafter Social current with user requirements, both in terms of functionality and scalability.