It’s decided, MongoDB will be our database system of choice

Posted By on Mar 28, 2014


 

mongo

 

Update 28.07.2015: Things change and so do directions. We are sadly not going to use MongoDB. Read more in the announcement.

We’ve been scoping out databases for the past several months and have come to the conclusion, MongoDB will be our database of choice. This is not an absolutely final decision, as we still need to see, if Mongo will perform as we intend it to (and we actually think it will). But, it definitely fits all of our “non-testable-under-load” requirements.

Here is a top-level list of requirements and also some we’ve learned to want, after getting to know MongoDB too. Sound strange? Read on!

 

List of Skooppa Platform Database Requirements

    • Scales very well
    • Flexible schema (i.e. adding fields, without any downtime)
    • Built in failover system, very high availability
    • Automatable scaling
    • Ability to serve multiple databases concurrently
    • Links into a search system, like Elastic Search
    • Has powerful querying abilities
    • Can be upgraded and maintained, with minimum to no downtime (again, very high availability)
    • Performs very well with any amount of data

MongoDB fits every one of these requirements.

Now most of you, who know your way around databases might be saying, “but any database will most likely fit most of those needs” and that is absolutely correct. However, there are also the NoSql benefits we also have now learned to love and now expect from any good datastore. These are the new requirements.

 

List of Learned Requirements for Platform Database Requirements

    • Should be easier for developers to use and program for/ with
    • Should avoid the need for programming for database caching (i.e. like Memcache)
    • Should avoid the need to learn a second language (i.e. SQL) or the need for an ORM, as an abstraction layer for SQL (avoid object-relational impedance mismatch)
    • Much faster implementation of new application features (true agility)
    • Programming workflow should be – Start with an idea and simply CODE IT! Don’t really need to worry about the database.

The last point is one that fits so well with the paradigm shift Skooppa also wants to give developers. Code and GO!  We really want to make it simple to develop applications on Skooppa and getting rid of SQL is certainly one way to do it. SQL is an ancient means for humans to speak with machines and we simply shouldn’t need this separate/extra language inside a language anymore in this day and age.

MongoDB was designed with the developer in mind. It was also designed with web applications and the needs of large data sets in mind. This is also its advantages over RDBMSes, as they were not designed specifically for the needs of web applications or even for developers and not really for big data either, to begin with. This was all added later. They were designed to simply store data for local applications and not for the vast expanses of Internet connectivity. They also don’t really care about how data would be saved or retrieved outside of the database, because SQL took up that slack for them for the most part. MongoDB doesn’t use SQL at all, so it MUST conform to how it’s used and this alone makes it worlds better for those who use it AND understand it.

And lastly, MongoDB is now the most popular NoSQL datastore in the world, has a great and very helpful community, is being constantly improved and is getting more and more popular, which means for us, MongoDB will be around for a very long time to come. Mongo is also very cost effective as Open Source Software (OSS). It is a fun technology and we want Skooppa to be fun. We really believe MongoDB will be a powerful factor in our success and the success of our customers.

Edit 25.11.2014:

I’ve now had some dealings with MongoDB support and I’ve been to a MongoDBDays conference and there are also some soft factors not mentioned above, which we also see as important.

  • Want to work with a company with a mindset like ours. MongoDB has a proper customer oriented mindset.
  • We want to work with people who push our own knowledge and intelligence. MongoDB has these people.
  • We want to work with a technology partner, who wants to push the envelope of technology they work in. MongoDB is innovating.

With that in mind, we still think MongoDB is a great choice.

Update 28.07.2015: Things change and so do directions. We are sadly not going to use MongoDB. Read more in the announcement.

Summary
It's decided, MongoDB will be our database system of choice
Article Name
It's decided, MongoDB will be our database system of choice
Description
We've been scoping out databases for the past several months and have come to the conclusion, MongoDB will be our database of choice. This is not a final decision, as we still need to see, if Mongo will perform as we intend it to (and we actually think it will). But, it definitely fits all of our "non-testable-under-load" requirements.
Author
Top