Thorin.js's power comes from its components and the way they interact and extend the core functionality.
Thorin as itself has some core concepts implemented and define how you initiate the bootstrapping process of your application. Its plugins, transports, libraries and stores define how your app interacts with external services. If you need some functionality that is not available in the open source space of thorin modules, you can write your own and just use it inside your microservices. You can also contact us to to add it as a official component so that others may use it.
Thorin's official components were designed to seamlessly integrate with other external services and utilities, so that you won't spend time on the integration process and just use them. You don't have to worry about an additional publisher/subscriber connection for Redis, Sequelize model loading and prioritization or securing your HTTP server. Our components do that for you.
Here at UNLOQ we've invested a lot of time into deploying, securing and monitoring a node.js application the right way. So, you can always use our sconfig.io service to store your app's configuration data in a secure way, or use loglet.io to store, query and livestream any incoming logs from all your microservices, in a centralized way.
We did not re-invent the wheel, nor do we say we've created from thin air this framework. However, we've selected some of the most stable node.js frameworks and integrated them with the core module by creating a wrapper over them, to abstract away low-level configurations, loadings or any kind of feature that would make you search for How to do this. We use express for the HTTP transport, socket.io for the WebSocket transport, sequelize for ORM, redis as the client, and so on.