Movinture has been developing its platform in Node for over 2+ years now. Our team has mastered the Node technology and we heavily use the following Node Modules in our cloud platform (iMsight) and applications:
- Expressjs: Choosing a web application framework is not an easy task, there are different factors that developers and architects consider while choosing one. We conducted a similar analysis when we started out and chose Express. It had the right combination of performance, maturity, and developer-support.
- Underscore and Lodash: They are the swiss-army knives of the Node world. We did start with Underscore but in our newer code we favor Lodash over Underscore.
- Socket.IO: This is our de-facto choice when the use cases requires bidirectional communication flow. We adapted it to work with IoT Devices and Sensors as well.
- MongoDB Driver: We could not do without this – our platform and application use MongoDB database heavily! It is interesting that we do not rely on Mongoose as much, majority of our code base leverages the native driver directly.
- Utility Packages: We use Debug – a small but really useful debugging package, AMQPLib for RabbitMQ messaging, Moment (for time/date functionality) and Nodemailer for email.
Bulk of our platform is home-grown code that has been developed to be optimized for developing IoT & Workflow applications. It has served us well not to go crazy with the staggering number of NPM packages available, and use them just because they are available. The secret of building a great platform is to be judicious with selecting packages.