Mule is an open source lightweight ESB that uses ActiveMQ for asynchronous messaging. It supports both synchronous and asynchronous communication through JMS. Mule implements a "JMS Back Channel" approach where it uses JMS for synchronous communication differently than the normal JMS perception. Mule configurations define inbound and outbound JMS endpoints and flows that automatically create queues, invoke queries, transform messages, and send responses to clients via temporary queues.