David introduced us to Alexis Richardson who runs the RabbitMQ project
(http://www.rabbitmq.com/ <http://www.rabbitmq.com/> ) and we had a short
email exchange about integration posibilitites. RabbitMQ is an open-source
implementation of AMQP <http://www.rabbitmq.com/faq.html#what-is-amqp> , the
emerging standard for high performance enterprise messaging. I wanted to move
the conversation to the esme-dev list to get some ideas and involve everyone.
We were discussing possible scenarios, especially regarding federated scenarios
where multiple ESME servers wish to exchange messages. Lift already has
RabbitMQ integration
(http://scala-tools.org/mvnsites/liftweb/lift-amqp/scaladocs/index.html
<http://scala-tools.org/mvnsites/liftweb/lift-amqp/scaladocs/index.html> ) As
an aside, I've got to say that I'm always surprised at what Lift already can
do. This functionality would probably work well with our planned pool
functionality. The idea would be that there are some pools that are federated
across several servers. Until we have the pool functionality working, I like
to suggest creating an action that sends a message via AMQP to another ESME
server. Of course, we'd have to implement a AMQPAddListener to receive the
messages sent via the action. This way we can learn more about messaging via
AMQP. My suggestion would be that we create a second Stax instance that can act
as a receiver to test out these enterprise messaging scenarios. I'm going to
set up a Jira items to deal with the new action and AMQPAddListener
implementations.
It appears that there is an expiremental binding for HTTP
(http://www.rabbitmq.com/download.html#experimental) - maybe that might be a
first step. We could use the existing HTP action to create a HTTP Message for
RabbitMQ.
We need a RabbitMQ server to communicate via AMQP, so we can use a public
hosted by LShift or deploy our own in Stax. Let's use the public one first.
By the way, laconica is also looking at using RabbitMQ, so that there is a good
chance for some interoperability there.
D.