28 Feb 2010

Node.js, redis, and resque

Interesting use of node.js as a sort of HTTP reverse proxy. It uses redis based queues to communicate with backends instead of establishing a direct socket connection and doing HTTP:

This spike uses node to put messages into a (redis) queue. Ruby background workers read from the queue, process the requests, and respond on a different queue. When node receives the response from the background worker, it sends the response back to the waiting user.

I assume this adds a not insignificant amount of latency to each request but would also make possible a bunch of long-running connection features. For example, the response (or portions of the response) could be delivered from separate worker processes. This style of architecture, where the client connection isn’t tied to backend web process, looks promising. The nginx_http_push_module is another example that gives the same types of benefits.

pgrs.net   14:26

23 Oct 2009

almosteffortless.com   05:34

29 Jan 2009

Public Service Announcement: the "P" in "HTTP" stands for "protocol"

I’ve written this same exact blog post a dozen times. For some reason, each hop along what should be a pure HTTP pipeline wants to invent their own psuedo-protocol for transferring HTTP messages. Why?! Your reimplementation of HTTP is not going to be any less complex — by definition, it must be at least as complex; and your reimplementation is definitely not going to be less buggy than the real HTTP implementations that have been around for a decade or more.

This is why can’t have nice things …

four.livejournal.com   06:25

27 Sep 2008

Varnish 2.0 beta 2 released

Lots of good stuff coming in Varnish 2.0. GC, regexp based purge, custom hash funcs, backend load balancing based on health or other metrics, and the thing I’m personally most interested: what looks like support for validation based caching.

projects.linpro.no   23:55

03 Feb 2008

SwitchPipe - Process Manager and Proxy for Rapid Web App Deployment

Peter Cooper scratches the deployment problem itch.

switchpipe.org   12:48

23 Jan 2008

put a proxy in front

“… even if you have a single server, a proxy in front can help performance significantly. Through the simple expedient of buffering, your heavyweight processes don’t waste time serving every request for the entire length of time the client is connected”

joshua.schachter.org   22:09

12 Jan 2008

ArchitectNotes - Varnish

“I have spent many years working on the FreeBSD kernel, and only rarely did I venture into userland programming, but when I had occation to do so, I invariably found that people programmed like it was still 1975.”

varnish.projects.linpro.no   23:33