Message Routing

Splitter

Break a composite message into smaller messages that can be processed independently, preserving identifiers needed for later aggregation or tracking.

splitbatchfanout
The problem
How can we process a message if it contains multiple elements, each of which may have to be processed in a different way?
Adapted from Enterprise Integration Patterns under CC BY 3.0. The visualization and explanatory content on this page are original GateSift material.
Original GateSift visualization

How Splitter works

One larger message is divided into smaller messages that can be processed independently.

Composite message
Splitter
Part A
Part B
Part C
1

Receive a message that contains multiple logical items.

2

Apply Splitter to identify and emit the individual parts.

3

Process each emitted message independently, often in parallel.

GateSift explanation

What this pattern helps you decide

Break a composite message into smaller messages that can be processed independently, preserving identifiers needed for later aggregation or tracking.

What happens when processing fails or the same message is delivered twice?
Where does state, correlation or routing configuration live?
How will operators trace the message and understand the decision path?
Common Azure implementations

Where you may see it

  • Logic Apps foreach
  • Azure Function batch split
  • BizTalk envelope debatching
GateSift relevance

How the analyzers can surface it

  • Batch and debatching pipelines
  • One-to-many flow shape

Pattern detection is contextual. GateSift should present these as architectural signals, not claim a pattern is implemented solely because one policy statement or adapter exists.

Source, licence and attribution

The pattern name and selected problem statement are adapted from Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf under CC BY 3.0. GateSift summaries, Azure mappings, analyzer guidance and diagrams are original. No endorsement by the original authors is implied.

Back to pattern library