How We Built eBay’s First Node.js Application
In this technical retrospective (2013), @senthil_hi shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Web 2.0 Genesis (2007–2013)
COMMUNITY SCORE 65 points
TOTAL DISCUSSIONS 27 comments
I really hate posts like this. It's full of vague statements like:
``` "When we found that Java did not seem to fit the project requirements (no offense), we began exploring the world of Node.js"
``` and
``` "By the end of the exercise, people understood the core value of Node.js; indeed, some of the con arguments proved to be part of the beauty of the language."
``` What's wrong with this? The pros and cons of Java versus Node.js aren't explained. In fact, I'm hard pressed to find any specific information in this article at all about what drove their decision making, or for that matter, anything in this article that's remotely technical.
This is a fluff piece that won't inform you about anything besides the fact that eBay is using Node. Cool story? But you're not telling us why
Given that they went with Node.js and talked about scalability, I assume they wanted the async nature of Node.js to maintain a large number of connections. I'm surprised they didn't try out Netty since they are a Java shop. The last time I investigated Node.js for async connection support in a project, the benchmarks I did showed that Netty could scale substantially better than Node.js in term of number of connections, memory usage, thread utilization, and raw performance on the same hardware. That was a year and half ago. Things might be different now, but I doubt some of fundamentals have changed much.
Anyway, it's good to try out new things. Kudos to them for doing something out of their mold.
"Our idea was to build a bare minimum boilerplate Node.js server that scales; we did not want to bloat the application by introducing a framework. The first four node modules we added as dependencies were express, cluster, request, and async."
I'm curious how you're using Express if not as a framework.
Nice! Ebay's running webwokers. Do you guys have any plans to start implementing app cache manifests to reduce load off the clusters? Even though ebay's loading time is fast as hell, I could still imagine this would reduce not only load for static content, but also decrease http sizes for end users.
I still dont get it, sounds like: 'look! ebay employees are also dabbling with node'. What did you actually build? Is it your hackathon project 'Talk' that you build on node, or was it something else?