Batch jobs and parallel processing at scale
How to process large collections and record sets in Mule 4: For Each versus Parallel For Each (concurrency, errors, memory), and Batch Job tuning with block size, maxConcurrency on fractional cores, Batch Aggregator sizing, scheduling strategies for concurrent instances, the disk-bound record queue and job history.
Design Mule applications to process large sequences/streams of messages.
~7 min read · 7 practice questions
What the exam expects
- Choose between For Each, Parallel For Each and a Batch Job for a large collection, and predict each one's error and memory behavior.
- Cap parallelism to a downstream limit with the right component's
maxConcurrency. - Tune a Batch Job's block size and concurrency for record size, memory and fractional-core deployments.
- Size a Batch Aggregator for bulk operations and pick a scheduling strategy for concurrent job instances.
- Explain why disk I/O dominates batch performance.
Parallel For Each: a scope that splits a collection into parts processed simultaneously in separate routes, then aggregates the results in their original order. Batch Job: a component that splits a message into records, processes them in steps and reports the results. blockSize: the number of records per block moved into memory for processing. Batch Aggregator: an optional Batch Step component that acts on arrays of records. schedulingStrategy: how several ready batch job instances share threads (Parallel For Each Scope, Batch Job Performance Tuning, Batch Component Reference).
Key facts
maxConcurrency- Detail
- Default: all routes in parallel
- Detail
- All routes finish, then
MULE:COMPOSITE_ROUTING
batchSize- Detail
- Default 1; sub-collections still sequential
- Detail
- In-disk record queue, constantly read and written
blockSize- Detail
- Default 100
maxConcurrency- Detail
- 2 x JVM-detected cores; whole cores on fractional deployments
- Detail
ORDERED_SEQUENTIAL
- Detail
sizeorstreaming, never both; no default
- Detail
- Array held in RAM; often restricted by SaaS providers
- Detail
- Kept 7 days by default
- When does a size-based Batch Aggregator start processing an array of records?
- Why should a Batch Aggregator avoid Guava types such as
ImmutableMap? - How many records are in the last block when 1,010 records run with a block size of 100?
The questions are free to read. Answers with their sources and self-grading are included with the pack.
Keep reading with the MuleSoft Platform Integration Architect pack
- Core concepts
- Exam traps
- Worked scenario
The pack includes:
- All 40 lessons of the MuleSoft Platform Integration Architect guide, with reading progress
- Interactive decision walks and step-by-step sequence steppers
- Practice exams purchase adds inline bank questions and topic practice (7 questions for this lesson)
- An official source cited for every claim
- An AI tutor that answers from the guide
- Choose guide-only, practice-only, or save $4 with both