in reply to Gearman::Server vs POE

I know POE much better than I know Gearman::Server, so I'm looking at Gearman::Server's documentation to answer this question.

Gearman::Server describes itself as an RPC dispatcher. Workers connect to it and register the jobs they can do. Clients connect to it and request work to be done. The Server routes work requests to the services that can handle them, and sends responses back. Unless I'm wrong, it's a basic message queue server.

POE is a general library for writing client/server programs, among other things. It's been used to write message queues, like POE-Component-MessageQueue. You could create something closer to Gearman::Server with it, maybe using something like POE-Component-IKC to handle service registration and request routing. But POE isn't a solution to that singular problem, like Gearman::Server is.

If all you need is Gearman, then it makes a lot of sense to go with that.

But if your requirements vary from Gearman, or you expect them to in the near future, then your time might be better spent by looking for a more suitable alternative. Message queuing, RPC dispatching, and load balancing are problems with a lot of existing solutions. Writing your own should be a last resort, but POE can help if you need to.