Hacker News new | ask | show | jobs
by indexzero 4587 days ago
Anyone can make a mirror. That's the glory of CouchDB. Just kick off replication and BOOM you've got the npm registry. There are community mirrors in Europe (http://npmjs.eu) and Australia.

If you want to run or use a community mirror that's totally great!

npm config set registry http://my.awesome.community.mirror

2 comments

This is great and all, but when Heroku relies on the main npm registry to be up (when it's not) you're screwed.
Heroku customers can always clone the nodejs buildpack and simply point the npm registry at another mirror.
I've started to always check in my node_modules directory. Heroku automatically runs `npm rebuild` in that case, so native modules always work. I've found it to be both faster and more reliable.
I'm surprised they're using CouchDB and not MongoDB.
npm is pretty much the prime use-case for CouchDB. REST API out of the box, replication is a core feature and not just a scaling feature (multi-master, MVCC) and the validation/access control is pretty much made for it. The npm registry is implemented as a CouchApp for a reason.
I agree that from a functionality perspective this is largely true, at least on paper. That said, if running costs become a significant bottleneck CouchDB becomes a less obvious choice. Sometimes there's a reluctance to migrate from one technology to another as requirements change over time but this seems one of those occasions where exactly that step is required. Sometimes it's good to take a step back, look at your current requirements in terms of cost and performance and determine what technology best suits your needs. I would question the know-how and objectivity of anyone that would land on CouchDB/node.js in this instance.
There's no node involved in the registry itself. This is purely CouchDB.
CouchDB has better replication support (e.g. multi-master, MVCC).
a lot of the central node community started on couch
Why?