Seasoned developers know that every few months a new “game changing” technology comes up just to pass into oblivion soon after. In my new role as technology strategist at Dynatrace I’m often asked why I think that this isn’t the case for Node.js. In this post I will explain why Node is different and how it is already used by enterprises.

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

Google Trends

Google Trends shows the search traffic over time for given terms and is a way to find out more about the relevance of a given topic.

As a chart only shows percentage values and related terms need to be added to provide a baseline for comparisons.

Google Trends for Node.js compared to Groovy and Ruby on Rails
Google Trends for Node.js compared to Groovy and Ruby on Rails

Comparing Node.js with other popular newish technologies like Groovy and Ruby on Rails we clearly see that it constantly is gaining momentum after its introduction in 2009 while Groovy and Rails are already declining or stagnating.

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.

Grows of Node.js compared to other well known technologies.
Grows of Node.js compared to other well known technologies.

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 big brands currently using Node.js
Some big brands currently 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.

I will cover this topic in more depth in another post, but 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 Nodes 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 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 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 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.
While it is already quite mature, it isn’t bullet proof and should be monitored to tackle problems like memory leaks or slow external services.

Node.js at Dynatrace

At the time of writing our Node.js agent is in beta state and already provides full PurePaths for selected frameworks.
It is with our free trial so try it out – we appreciate your feedback!

End to end transaction flow through Node.js
End to end transaction flow through Node.js in Dynatrace

How do you use Node.js and what do you expect from an APM tool?

Please use the comment form below to tell your Node story. Also include the frameworks you are using and possible performance issues you had to tackle.