Why did Netflix move to Node.js ?

Netflix switched its APIs for the different platforms (Mobile, TV, Laptops etc.) from Groovy scripts, running as a single monolith, to Node.js + restify instances, running in separate Docker containers. That way they run faster and scale better, versioning is easier, and the development speed has vastly improved. The main backend and all the heavy lifting are still done in Java, though.

Proper answer

The main backend and all the heavy lifting at Netflix are still done in Java. But as far as we know, each platform – TV, iOS, Android, Windows, Browsers – used to be handled by a single monolith application with multiple Groovy scripts. It has changed and now, they have separate APIs written in Node.js + restify in separate Docker containers. This happened because of Node’s best features: performance, scalability, and development speed. Also, Netflix is not the only one to have rebuilt itself with Node recently. Let me go through the main upsides of Node.js briefly below.

Performance

Node.js uses the so-called event loop and a non-blocking, asynchronous I/O, which allows it to handle tens of thousands of requests per second, with very low latency, in a highly cost-effective manner (which is crucial for Netflix, which can take up to 15% of world’s broadband by itself). It is also run by the V8 engine, which is written in C++ (which is where the speed comes from). You can read more about Node’s performance here.

Scalability

Netflix is running Node.js instances on AWS in Docker containers – the stack that has been synonymous with scalability for a while now. This allows for the horizontal scaling (more,= smaller instances instead of one bigger instance), independent, non-breaking changes to the containerized APIs (one buggy container doesn’t affect the others) and easy version control (which company has 1000s of at the same time). Because of that, as you can guess, Netflix is currently one of the main AWS customers, which has been beneficial to both companies. You can read more about Node’s scalability over here.

Speed of development

Because Node.js is basically JavaScript, it facilitates clear communication in developer teams, which can be more cross-functional using Node.js. Backend and frontend developers can easily understand each other’s code and can even help each other work on tasks. Moreover, because Node.js is so popular and community-driven, every problem you can imagine has most likely already been solved by other developers, and the Internet has all the answers. With great communication and a community willing to help, the speed of development is one of the main selling points of Node.js. And also – no one wants to write Groovy scripts 😉

Hope that you’re satisfied with the answer! For further reading on Node.js’s advantages and its usage at Netflix, just go through the links provided all over this answer.

Take a look at this. She clearly explained the reason.

Comments

  1. Denny kabistan

    Hey. I work in dialon.com . Its a ecommerce based startup. We are changing our backend from java to nodejs. Reasons are the same , we want to handle large amount of traffics. And we also want to manage our IO properly. Thanks for the article. This will surely motivate us to do the same.

    1. Chritopher neddy

      Hey Denny
      Can you send your profile here. We are looking for nodejs developer.
      Please let us know if your interested in a job change.

      Ping us : [email protected]

    1. Nikhil jannardhan

      @judi is this a spam. I request owner to remove this spam link here.

Your email address will not be published.