Burlingame, CA

EclipseCon is brought to you by the Eclipse Foundation with the support of our sponsors.

March 17-20, 2014

You are here

20 Tips for Building a Scalable and Robust Node.js Stack that Developers Love

Status:

Accepted

The platform team at eBay recently embarked on a mission to provide a new Node.js-based web development stack that developers would love using. Despite being an entirely new ecosystem to most developers, we wanted to introduce a stack that had a minimal learning curve, performed extremely well and made front-end web development fun again.

We recognized that as web applications grow in complexity it becomes increasingly important to provide a web development stack that shields developers from potential problems and allows for maximum developer productivity. The team decided to rethink some of the industry norms to see how we could simplify the toolchain and make it easier for developers to build an application that interacts with a myriad of complex infrastructure pieces. In addition, we also never lost focus on the requirement that the stack must scale extremely well. In this talk we will share our tips and solutions, including but not limited to:

Avoid build tools and build steps

Be flexible, don't use a restrictive framework

Avoid introducing “magic” and still hide complexity

Expect services to fail and have a backup plan

Minimize developer idle time and provide instant feedback

Automate using scaffolding and command line tools

Organize project files to enforce modularity and best practices

Keep documentation up-to-date and easy to digest

Automatically optimize the delivery of JavaScript and CSS resources

This talk is a must for all web developers who are interested in improving their productivity and building high performance web applications that are easy to maintain.

The focus of this talk would not be the stack itself, but rather or learnings about building a new stack. However, during the talk we'll definitely be sharing some of the open source modules and techniques that helped us along the way. In theory, the tips can be applied to any stack on any platform but there will be some references to Node.js-specific solutions.

To answer your other question, the Node.js stack at eBay is a combination of open source and closed source Node.js modules. The only modules that are closed source are those that interface directly with eBay-specific infrastructure. We used open source modules wherever possible and contributed to open source when there was no good option. The following are links to some of the open source modules contributed/libraries by eBay: