morgon has asked for the wisdom of the Perl Monks concerning the following question:
in my current project we will have several cooperating Perl-processes running on several machines.
What we are currently thinking about is not having these processes talk directly to each other but decoupling them via a queuing middle-tier in which each processes would communicate indirectly via (persistent) queues.
We are running on Linux and use Oracle for the backend.
The question is now how to implement such a queuing infrastructure.
I can currently see four ways for us to achieve this:
1) Roll your own.
2) Use Spread.
3) Use database-tables are queues.
4) Use Oracle Advanced Queuing.
Currently I am trying to evalute options 2-4 and would welcome any feedback on specific pros and cons that more experienced monks see.
Personally I quite like Spread (so far - I don't have a lot of experience with it), however I am also seeing the advantages of Oracle Advanced Queuing as it would permit us to have a process dequeue a message, do it's business-logic, update some database-state and finally enqueue new messages all in one database-transaction.
So could you please provide some enlightenment?
Many thanks