Company
Date Published
Author
Risk Olson
Word count
440
Language
English
Hacker News points
None

Summary

Nodeload, the first GitHub Node.js project, was launched to replace the Ruby-based git archive download server, addressing challenges related to the storage and generation of repository downloads. The previous system relied on a combination of Resque jobs and a Sinatra app to manage archive requests, but this setup was seen as unnecessarily complex and inefficient. Node.js was chosen for its ability to handle event-driven tasks more effectively than Ruby's blocking environment. A JSON API was implemented to determine the correct file server and user access permissions, avoiding the need to duplicate logic or load the GitHub app in Ruby. While this is an early iteration, the project aims to streamline archive serving without redirects, running more efficiently and using less memory than previous solutions. The choice of Node.js also allowed for the integration of a socket.io web socket server for monitoring.