in reply to
Convert application to async
I can definitely say that you need to tell us more, much more, about this application ... and about how and why it hurts. It certainly sounds to me like the Perl application, operating as it does “wedged into” an Apache service-process, has what has become a very inappropriate design. But exactly what to do about it, at this point, is not a question easily answered. It’s going to be a compromise decision. The hugely important question is: what compromise to make, and at what technical risk therefore cost.
My instincts tell me that what you really have here is a workflow management system, for which the Perl application ought to be ... a user interface. The work is being done by a different set of processes on the same or a different computer. But, since you say that “the scale of the program makes it unrealistic to rewrite,” the matter of making compromise technical decisions appears again. Fact is, you are going to have to “rewrite it” somewhat, and there will be no bright-line guidance with regard to how exactly to do so.
If you will, please follow-up on this thread with more detail. The necessary consultative expertise is unquestionably to be found here ... and not particularly in “me.” The task before you is going to require a lot of thought, and not-so-much programming.