title: Mule batch processing vs foreach vs splitter-aggregator
body: <p>In Mule, I have quite many records to process, where processing includes some calculations, going back and forth to database etc.. We can process collections of records with these options</p>
  <ol>
  <li><p>Batch processing</p>
  </li>
  <li><p>ForEach</p>
  </li>
  <li><p>Splitter-Aggregator</p>
  <p>So what are the main differences between them? When should we prefer one to others?</p>
  </li>
  </ol>
  <p>Mule batch processing option does not seem to have batch job scope variable definition, for example. Or, what if I want to benefit multithreading to fasten the overall task? Or, which is better if I want to modify the payload during processing?</p>