Mule ESB allows processing of messages in batches. A batch job splits large messages into individual records that are processed asynchronously and in parallel by batch steps. The results are summarized in a report with details on successes and failures. Batch processing is useful for handling large data sets from APIs, databases, or between applications. The main parts of a batch job are the input, loading, processing, and completion phases.