The NoSQL database movement is rapidly gaining ground in the enterprise application development.
NoSQL (Not Only SQL) is loosely defined as a set of database management system that follows a more non-relational approach to data representation and does not require fixed table schema. They are designed to be horizontally scalable and fault tolerant.
According to 10gen, creators of one of the most popular open source NoSQL databases, MongoDB:
The original catalyst for the NoSQL space is the growth of “big data” and the need for scalable databases to store that data.
There are dozens of different NoSQL options today such as Cassandra, HBase, MongoDB, CouchDB, Redis, Neoj4 and Riak. Each one seems to have its own unique way of managing data, so before choosing the right NoSQL database, it is important to consider the problem domain.
Here at Exist, we’ve utilized some of these NoSQL databases in some of our projects.
“We have been using MongoDB extensively in some of our projects, and so far, we have no complaints,” revealed Jonas Lim, our VP for Engineering.
“In other cases, we’ve implemented a hybrid model (NoSQL + Relational Database Management System) to mitigate the limitations of each and reap the benefits of both.”
“The thing about choosing what database to use is that there are problem cases that are more suited for MongoDB (NoSQL database in general) and there are also problem cases that are more appropriate for RDBMS databases. So it’s not really an either/or argument most of the time,” added Jonas.
Why we use MongoDB:
Use Case Scenario: High Volume Data Feeds
“We’ve considered the use of MongoDB because of the type of problem we are trying to solve,” shared Adrian Co, Architect of the project.
“Since the project I’m involved in deals with the collection and storage of huge amount of structured but diversified types of data, we needed to have a database that is flexible and performant in storing and retrieving dynamic content and form data. We feel that MongoDB is the best option because of its document-oriented and schemaless nature,” explained Adrian.
Other great use cases for Mongo are well-explained in their site.
Flexibility, Scalability & Performance
MongoDB gives you a lot scalability and flexibility with excellent throughput. Its schemaless nature provides this flexibility and its document-oriented approach makes horizontal scaling easy.
“Given that our project is SaaS (Software as a Service) in nature, it is expected that data will grow indefinitely over time, hence support for horizontal scaling is a must. And MongoDB makes it easy to achieve this using its sharding and replication architecture,” said Adrian.
In addition, MongoDB represents data using JSON/BSON objects which provides excellent performance output by grouping relevant data together internally.
“What I like about MongoDB is its simplicity and ease of use,” shared Adrian.
To summarize, we’d like to note that today, the idea of a one-size-fits-all approach to database solutions might not be applicable anymore. While MongoDB or NoSQL in general may not be a complete solution, it can be a better solution to a subset of problem domains than just plain RDBMS. Hybrid approach maybe the key to the problem domain you are solving.
You can check out the NoSQL site to learn more about NoSQL databases.
And here are some presentations from the recent QCon San Francisco event about NoSQL and MongoDB:
MongoDB large scale data-centric architectures, ObjectRocket
Looking at implementing a NoSQL or hybrid approach in your application, we can help. Check out some of our MongoDB projects here.