Using MongoDB instead of Domino?

Posted on

In one of my previous posts I mentioned Play! framework. I’m now working with it almost exclusively, all of my non Notes work is in Java and when I am not dealing with SOAP web services or Android, I use Play framework. But it is not what I want to tell you about this time. It is MongoDB. It could be easily used in Play application using play-morphia plugin that uses Morphia project to map MongoDB to JPA. But again this is not what I want to talk about - although it is also very interesting :-)

For Notes people MongoDB feels like something known. And it should, it is document oriented (as Notes), schemeless (as Notes) NoSQL (as Notes) database. And what is maybe more interesting, it is free. So this could be solution for some of clients that for some reasons cannot have or cannot afford Notes or theirs “problem” could be solved with Notes, but it is too big for them. If for example they do not need any of Notes collaboration features, mail and so on. You do not have to change your thinking about the db model behind your application. If it is document oriented agenda or if it does not have strong relational structure, MongoDB and some other new NoSQL databases are the right way to go.
I am going to do a small experiment: I want to take a Notes database, convert it 1:1 to MongoDB (using DomJson), build identical “view and search” application and then compare the speed. It won’t be “scientific” comparison, but it could show some interesting results. We all know that with high number of documents Domino isn’t getting any faster and I think this new generation of NoSQL databases is from the beginning written to be able to handle large amounts of data. What would also be interesting is the amount of memory and disk space used by both platforms.

Note: There was recently a big “discussion” about MongoDB, started by this article. Company behind MongoDB answered it here. Looks like they are improving it very quickly. That is not like in Domino/Notes, but we all know the reasons. Backward compatibility to name just one of them. And big company behind it to name another one…