I’ve got an existing Perl application which is heavily I/O bound on Network resources (Talks to several MySQL databases, LDAP, etc). It processes very high volumes of traffic 100+ per second, and is slowly becoming unmanageable as it scales… 20 servers and counting.
I’m looking to significantly refactor it using asynchronous methods in order to improve the resource usage as well as processing speed. I firmly believe that if a single machine can easily handle dozens of connections to databases & LDAP directories, the overall performance will improve dramatically.
My question is as follows:
What good frameworks in Perl (if any) allow me to take I/O bound tasks from my code and externalize them to worker processes without significantly altering existing logic flows?
I have experience with using Akka & Play Framework in Java, which would be the perfect solution if I was working in Java — the Akka actors and the Promise<> / Await logic would fit in perfectly with what I’m trying to do.
Thanks in advance for any help.
POE is a great async framework, but you’d have to change your code quite a bit, possibly. I’ve used it before for an async HTTP web server and after you get past the learning curve of it, it’s very useful.
subs::parallel is much easier to use, though.