Seasoned developers know that every few months a new “game changing” technology comes up just to pass into oblivion soon after. In my role as technology strategist at Dynatrace I’m often asked why I think that this isn’t the case for Node.js. It's because the way I see enterprises using Node as a new strategic technology to build scalable applications that keeps them in business.

Before going into more detail, let’s review Node.js’ relevance in the industry by looking at some statistical data.

Google Trends

I like Google Trends as it shows search traffic by keyword over time. Its is a great way to identify the relevance of a given topic especially when correlated with other terms which in this case act as a baseline.

Node.js vs. Ruby on Rails Google Trends

Comparing Node.js with Ruby on Rails clearly indicates that Node gained much momentum after its introduction in 2009 and now already supersedes its 'competitor'.

Indeed Job Trends

Another strong indicator of relevance is Indeed Job Trends as it shows the number of job postings and relative growth for a given skill.

Indeed Job Trends - Growth

Please note that this chart compares the growth and not the absolute number of job offerings where Java still rules it all. It tells us that Node.js has the highest growth rate of all compared technologies.
Alert readers may now argue that the charts would have looked quite the same for technologies like Ruby on Rails some years before. So how is Node.js different?

Big brands are using Node.js

Some enterprises using Node.js

Every new kid on the technology block gains momentum in the beginning. Especially because startups tend to use the freshest technologies available and there are many willing and experimental startups at any given time. But as we see here, big established companies with years of legacy software are shifting to Node.js. This is quite uncommon and to understand the reasons for that we have to peek into how Node.js works.

Node.js in a (tiny) nutshell

Node.js uses Google’s V8 engine to bring JavaScript to the server side. JavaScript is a programming language that supports event based programming (just look at the OnClick() in browser environments) and has functions as first class members. This makes it a perfect fit for event-callback constructs that are a cornerstone of asynchronous programming.
In short, this means that program execution doesn’t stop and wait when performing I/O requests which in turn saves system resources while providing better overall performance.

What enterprises say

Node.js powers our web applications and has allowed our teams to move much > faster in bringing their designs to life

Jeff Harrell – Director of Engineering at PayPal

Node’s evented I/O model freed us from worrying about locking and concurrency > issues that are common with multithreaded async I/O

Subbu Allarmarju – Principal Member, Technical Staff at ebay

On the server side, our entire mobile software stack is completely built in Node. One reason was scale. The second is Node showed us huge performance gains.

Kiran Prasad – Mobile Development Lead at LinkedIn

According to these statements at least some reasons for Node's adoption in enterprise environments are

  • Scalability
  • Short development cycles
  • Performance

How enterprises incorporate Node.js

During the last few years the requirements for network connected software systems changed dramatically. Static or semi static websites for desktop computers were replaced by responsive, dynamic sites that load additional content via Ajax/XHR or even rely on push technologies like WebSockets. Streaming services are on the rise. Data of all kinds needs to be delivered to an ever growing number of users with different devices in different formats.
Those changing and growing demands can either be fulfilled by adding new hardware and extending existing software or by adding a new layer that utilizes existing infrastructure more efficient and supports all the most wanted new technologies like WebSockets and REST services.

Node.js as bridging technology

Node.js shines in modern web-connected applications that need to gather data from different sources, consolidate it and push it to many clients in real-time. This makes it a perfect bridging technology for existing systems as it provides an easily deployable migration layer that either proxies data to existing systems or collects and reformats data for different uses.
Please watch this video by Eran Hammer - at this time Sr. Architect at WalMart - to see how they did it.
Looking at all the industry voices and the level of adoption by enterprises it is clear that Node.js is here to stay.

Enterprise grade Release Model

In Fall 2015 the Node.js project introduced a new LTS model that added predictable release cycles and long term support released needed by many enterprises.

Node.js LTS schedule

This means that long term support (LTS) releases will be actively developed for 18 months and maintained for another 12 months. So a LTS release may effectively stay in production for 30(!) months while still receiving bug- and security fixes.
If you need even more enterprise features and support you also may want to consider using N|Solid the premier Enterprise-grade Node.js platform.

Enterprise grade Monitoring

While Node.js is already quite mature, it isn’t bullet proof and should be monitored to tackle problems like memory leaks or slow external services.
With Ruxit Dynatrace offers a turnkey monitoring solution that provides transactional insights into the health of your full stack including all Node.js tiers.
Combined with N|Solid you can even deep dive into Node.js processes. Both products can be tried for free.

Ruxit Node.js Monitoring

Wrap Up

Given the adoption rate in large enterprises it is clear that Node.js is here to stay. Especially for tasks that involve asynchronous I/O it's an excellent choice.

This is an extended and updated repost of Why Node.js is hitting the big time in Enterprise Markets.
Feel free to reach out to me on Twitter anytime @dkhan. More posts of mine can be found on Dynatrace APM Blog.