[This is preliminary documentation and subject to change]
Worker processes can be configured to automatically start when the first request for a URL in a particular part of the namespace group arrives at the server. This is possible because the namespace group is owned by the application pool.
When a HTTP request arrives at the IIS server targeted to a URL and no processes are available to handle it, the kernel-mode driver notifies the process manager, WAS. WAS then queues the request, along with any subsequent requests for that application pool in the interim while the process is starting. Meanwhile the process manager launches a worker process for that application pool. The process initializes, and calls the kernel-mode driver to inform it that the process is ready to receive requests and requests are now routed. WAS manages demand process starting, and controls and monitors the lifecycle of worker processes.
If the namespace group was configured as a Web garden, and there are requests for it backing up in its kernel queue, then WAS starts another process, using the same mechanism as with an application pool.
The benefit is that the HTTP request will either be accepted immediately (if the process is running), or be cached as it waits in the queue for a new process to initialize, minimizing any delay or interruption of service.