I used JMS (Java Message System) in order to provide async message communication between applications. It supports other key features like persistence and transanctions.
I always ask myself why there is no equivalent PMS - Perl Message System in the Perl World.