Designing integration solutions to meet performance requirements7% of the exam

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.

Official exam objective
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).

Sources for this section (3)

Key facts

Parallel For Each maxConcurrency
Detail
Default: all routes in parallel
Parallel For Each failure
Detail
All routes finish, then MULE:COMPOSITE_ROUTING
For Each batchSize
Detail
Default 1; sub-collections still sequential
Batch input phase
Detail
In-disk record queue, constantly read and written
Batch blockSize
Detail
Default 100
Batch maxConcurrency
Detail
2 x JVM-detected cores; whole cores on fractional deployments
Default scheduling strategy
Detail
ORDERED_SEQUENTIAL
Batch Aggregator settings
Detail
size or streaming, never both; no default
Streaming aggregator
Detail
Array held in RAM; often restricted by SaaS providers
Batch job history
Detail
Kept 7 days by default
Sources for this section (4)
  • 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

Practice for the MuleSoft Platform Integration Architect exam