When To Use Node.js as a Back-End – Simple Programmer

Agree with about 75 percent of this

When You Should Avoid Node.js in Back-End Development

As I have noted, the primary strength of Node.js is its single-threaded nature. It significantly decreases the complexity of handling various requests when you have hundreds, thousands, or even hundreds of thousands of users with limited requests when it comes to sheer computational power.
The trend shifts significantly when you have a small number of client-side requests that, however, demand significant computational power. Let us imagine a situation in which you build a complex web application for rather complicated mathematical calculations. In specific scenarios, even two simultaneous inquiries can quickly overload your server CPU.
Only multithreading can offer you a robust solution to the problem, as it will dedicate more “firepower” to complex processes, immediately initializing calculations on multiple cores of a CPU.
However, this situation is highly hypothetical. The majority of the programs that involve heavy calculations are always desktop-based. The complexity of the calculations is often so high that even the multithreading server back-ends cannot deal with a relatively small number of user inquiries.
It is easier to offload all calculations to user PCs, making offline programs for some of the most complex tasks such as video rendering or mathematical calculations. Thus, I do not recommend that you use web platforms for any type of complex calculations. This situation may change in this decade; however, the future solution is likely to involve some radical innovations. Node.js is clearly not an option in this case.
Node.js is a niche product that is oriented at the everyday needs of non-advanced PC users; if you go outside of this safe zone, you are essentially shooting yourself in the foot. Complex calculations should be dedicated only to classical development solutions.

Source: When To Use Node.js as a Back-End – Simple Programmer

Leave a Reply

Your email address will not be published. Required fields are marked *