You can process messages in batches using Mule ESB. In an application, you first initiate a batch job scope. It then splits messages into records and acts upon each of them. Finally, it reports results and pushes the output to systems or queues.