Message Routing

Scatter-Gather

Send a request to several recipients in parallel and aggregate their replies into one result using a defined completeness and selection rule.

parallelfanoutaggregate
The problem
How do you maintain the overall message flow when a message needs to be sent to multiple recipients, each of which may send a reply?
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 Scatter-Gather works

The same message or request is distributed to multiple destinations.

Incoming message
Scatter-Gather
Destination A
Destination B
Destination C
1

Accept one message from the producer.

2

Apply Scatter-Gather to select or fan out to multiple recipients.

3

Each recipient receives its own delivery or processing opportunity.

GateSift explanation

What this pattern helps you decide

Send a request to several recipients in parallel and aggregate their replies into one result using a defined completeness and selection rule.

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

  • Durable Functions parallel activities
  • Service Bus topic plus aggregator
  • Logic Apps parallel branches
GateSift relevance

How the analyzers can surface it

  • Parallel fan-out and aggregation
  • Multiple response endpoints

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