NoSQL and Outsystems


NoSQL is starting to buzz a little more lately and I am wondering what Outsystems view is on that?
Do you have plans to incorporate it in the latest platform servers or are you confident that the current database structure is working excellent enough?

what is NoSQL?
Hi Joost,

NoSQL is a big shift from traditional SQL databases. Besides, there's really a lot of not compatible NoSQL flavours out there... you can find all kinds of engines for many kinds of purposes, with many of the available solutions evolving at a very fast pace. With that in mind, I don't believe that it would make sense to fully convert the OutSystems' platform so that the whole model would be stored in a NoSQL engine rather than in SQL Server or Oracle, as that would be a rather big engineering effort with no useful returns.

That being said, NoSQL stores can be very useful in several scenarios, for instance when you're dealing with huge amounts of data that you want to batch-process, when you don't really care about not having transactions and when you're comfortable with database model denormalization, which is for many developers a strange shift in the mindset. Therefore it might make sense to have integrations with NoSQL databases, but probably as a connector to be used in specific application scenarios such as processing and handling huge amounts of data in a non-transactional way.

Internally we've been experimenting with a MongoDB connector for performing complex queries, most of them issued at runtime, over a big dataset. Since this is mostly for data analysis, we needn't have transactions and the system ends up performing a lot better than when we had it in SQL Server. This connector, however, was designed to meet specific purposes of the said application so at the time it wouldn't make sense to release it, although this may happen in a near future.

In summary, we're watching as the NoSQL panorama evolves but I strongly recommend you to think if it makes sense to jump to the NoSQL wagon (if there's a real reason or if it's just because of the hype) and make that shift according to the applications' specific needs.