PayPal’s Move To Node.js from Java Spurs Discussion and Raises Questions

As you have seen in previous posts, I like both the Java platform and the Node.js platforms.  There is an interesting discussion going on about the move to node.js by PayPal.

Recently, PayPal announced that it was moving aspects of its platform to Node.js from Java :

paypal05

The numbers provided in the graph are interesting and have evoked some tweets and responses :

The twitter conversation suggests a less-than-optimized Java application. I do have to say 1.8 pages/second is quite slow.  Certainly good reason to update the code.  Three interesting write-ups have suggestions and views on this.  First, Cloudbee’s developer blog offers some thoughts on frameworks generally :

java2node03

VividCortex offers another view :

java2node04

Another write-up from the High Scalabity :

highscalability05

This whole discussion is interesting for a number of reasons – it brings up the aspects of moving old code to new frameworks, platform choices and the actual architectures around constructing software around these platforms.

Recommended Reading : A Use-Case-By-Use-Case Introduction to Node.js

I bumped into a very nice overview article suggesting use-cases for node.js.  One may argue that it is not comprehensive but it makes interesting reading and offers some suggestions. The article discusses how node.js works and some of the most popular NPM modules.   It’s approach to explaining node.js is actually quite nice and goes into how the module, Express.js, works. It discusses some use-cases like chat, as an API on top of an object database (like MongoDB),  queued inputs, data streaming and as a server-side proxy. It also looks at some dashboard applications like a stock trader’s dashboard, application monitoring dashboard and system monitoring dashboard.  Finally it goes through the pros and cons of using it in server-side web apps and where it should be used.

nodejs_use_cases2

As a follow-on to the use-case article, eBay has written about their first node.js use-case around “talk” :

eBay_nodejs

Recommended Viewing : Writing RESTful Web Services Using Node.js

I bumped into this wonderful talk that Jakob Mattson gave on node.js. In this video he introduces node.js in a really nice way. Moving from basic concepts to building web services and middleware.  Along the way he introduces frameworks and tools like passport that help you develop an approach to authentication.  This is a really nice introduction to node.js.

and in a second, slightly higher level talk he discusses web services and the need to adopt the Unix philosophy for web services (“Do one thing and do it well.”) and then allow the services to use each other.

You can find more on user authentication and passport.js from setup to adding routes to test and to error handling.  This nice write-up  provides a lot of information :

passportjs