http://www.perlmonks.org?node_id=999134


in reply to Question on design for FastCGI

Consider the approach taken by RPC::Any.   The request is quickly classified according to some criteria ... it could be part of the URL, part of the request, or some combination ... and a processing module for that kind of request is located, dynamically brought into memory if it’s not already there, and given the work.   It is a simple yet flexible design, and, best of all, it is already implemented by someone else.

The FastCGI protocol is simple and flexible, and it can be applied in a lot of different ways.   I have used it among back-end service processes as well as front-end FastCGI worker bees.   Apache modules normally use a very simple strategy for apportioning out work among processes, but they don’t have to be simple strategies.

As Anonymous said, you want to pay a lot of attention to the actual workloads that your site must deal with, and constantly observe as a basis for your fine-tuning.