Building notes, projects, and occasional rants

Not fast enough

Sometimes, you're just not fast enough.

Last week I was talking with Joel Bernstein about the best way to host web applications written in Perl, for example using Catalyst.

My current setup uses Perlbal as a front-end, and then Apache+mod_perl in the back-end. I've also tried lighttpd with FastCGI, but I was not at all happy with the overall results.

Our first idea was to strip down Perlbal, plug in a FastCGI server, and let it talk to a bunch of FastCGI instances started using FastCGI::ProcessManager.

I looked at the code of Perlbal last week, and it has all the HTTP bits pretty much glued into the core, so supporting a new protocol seemed a major re-factoring job.

With that I turned to a second plan: implement with Danga::Socket, the fast socket framework that uses epoll/kqueue, a small HTTP server that powers our application, and keep using Perlbal for balancing between back-ends. That was my plan at the end of that night, and I started pulling stuff from Perlbal to do it.

It's not done yet, and now I think it might never be, because Matts just beat me to it.

There is no code yet, and while my effort was more about a simple HTTP server just for running Web applications, his seems to be a more fully featured Perl-based HTTP server.

I'll try and hop on #axkit-dahut to know when the code will be available to see if I can write plugins to do what I want.