Node.js: An Open Source Tool On the Rise at eBay

Sebastian Rupley, eBay News Team

Learn about one of the open source tools that has had a large impact on eBay's technical innovations across the site.

node.js

In running one of the world’s largest online marketplaces, eBay has tackled technical challenges at a scale that few others have. Several open source technologies have made a critical difference within our technology stack, including Hadoop and Kylin, a distinguished open source tool that is now a Top-Level Project at the Apache Software Foundation. Node.js easily qualifies as one of the primary open source tools that eBay leverages. 

If you are unfamiliar with Node.js, it is an open source JavaScript runtime environment for developing server-side Web applications, built on Chrome’s V8 JavaScript engine.

How pervasive is Node.js at eBay? Node.js has become eBay’s de facto front-end web stack that powers many of our major web flows. “The modern web ecosystem is built around Node.js and we get numerous benefits from it,” said eBay Engineer Senthil Padmanabhan. “Development tools, testing and automation libraries, and many other useful components are all distributed as Node.js modules. JavaScript is the preferred language choice for many web developers, so our developers intuitively work with Node.js. Also we get reusability benefits with Node.js, as sharing and distributing common components is very easy with it.”

Padmanabhan is the author of a technology blog post that delves into how Node.js orchestrates services on the eBay platform. As the post notes, our journey with Node.js, started small, leveraging it on the back-end of our platform. Its use at the company has steadily grown since then.

“Our Node.js layer acts as a thin web client. It currently talks to a pool of backend services on our platform, called Experience Services,” said Padmanabhan. “Experience Services power all user-facing experiences, which includes iOS, Android and the web. These services output render-ready data that can be directly consumed by the Node.js layer and rendered as HTML.”  

In addition, eBay’s platform team has built some incredible tools to successfully build and deploy Node.js applications to production. It also allows application team members to benefit from very efficient monitoring, allowing them to respond to any issues that arise in real time.

Not all technology tools are appropriate for a platform at the scale of eBay’s, but Node.js has kept pace with our needs, and then some. We have given back to the Node.js community, as well. For example, we have open sourced our build and asset management tool lasso, which is used by all eBay Node.js applications. It is a tested and hardened tool that many developers can benefit from.

For much more on eBay’s experience with Node.js, see our posts found here and here.