SlideShare a Scribd company logo
1 of 8
Scatter-Gather Router
(Basic Tutorial)
- By Rahul Kumar
Scatter-Gather
The routing message processor Scatter-Gather sends a request message to multiple targets
concurrently. It collects the responses from all routes, and aggregates them into a single message.
The Scatter-Gather router sends a message for concurrent processing to all configured routes. The
thread executing the flow that owns the router waits until all routes complete or time out.
Failure in one route does not stop the Scatter-Gather from sending messages to its other configured
routes, so it is possible that many, or all routes may fail concurrently.
Scatter-Gather
By default, if any route fails, Scatter-Gather performs the following actions:
sets the exception payload accordingly for each route
throws a CompositeRoutingException, which maps each exception to its corresponding route using a
sequential route ID
Catching the CompositeRoutingException allows you to gather information on all failed routes.
This exception exposes two methods which allow you to obtain the IDs of failed routes and the
exceptions returned by each route.
The getExceptions method returns a map where the key is an integer that identifies the index of the
failed route, and the value is the exception itself.
The getExceptionForRouteIndex(int) method returns the exception of the requested route ID.
Default Behavior
Errors out if any route results in Exception, although the the other routes are
processed successfully.
Uses org.mule.routing.CollectAllAggregationStrategy
Overriding Default behavior
Scatter-Gather allows you to define a custom aggregation strategy which overrides its default aggregation strategy.
Among other things, custom gathering strategies allow you to:
discard message responses
merge message properties that originated in different routes
discard failed messages without throwing an exception
select only one from multiple responses
Implement AggregationStrategy interface to customize
Scatter Gather for Parallel processing
Set maxThreadsActive for Scatter-Gather = number of routes in Scatter-
Gather maxThreadsActive for flow
Scatter Gather for Sequential processing
Set maxThreadsActive for Scatter-Gather = 1
Thank You !

More Related Content

What's hot

Muleflowarchitecturepart2
Muleflowarchitecturepart2Muleflowarchitecturepart2
Muleflowarchitecturepart2vijaynerd
 
Mule esb flow processing strategies
Mule esb flow processing strategiesMule esb flow processing strategies
Mule esb flow processing strategieshimajareddys
 
Mule splitters
Mule splittersMule splitters
Mule splittersGandham38
 
Performance tuning in mule
Performance tuning in mulePerformance tuning in mule
Performance tuning in muleSon Nguyen
 
Mule Scatter-Gather component
Mule Scatter-Gather componentMule Scatter-Gather component
Mule Scatter-Gather componentAnkush Sharma
 
Mule threading profile & processing strategy
Mule threading profile & processing strategyMule threading profile & processing strategy
Mule threading profile & processing strategychetan singhal
 
Mule concepts filters scopes_routers
Mule concepts filters scopes_routersMule concepts filters scopes_routers
Mule concepts filters scopes_routerskunal vishe
 
Mule routing and filters
Mule routing and filtersMule routing and filters
Mule routing and filtersGandham38
 
Routing in mule
Routing in muleRouting in mule
Routing in mulevasanthii9
 
What is the difference between using private flow
What is the difference between using private flowWhat is the difference between using private flow
What is the difference between using private flowSon Nguyen
 
Rest based api with jms as backend
Rest based api with jms as backendRest based api with jms as backend
Rest based api with jms as backendNazia Abdullah
 

What's hot (13)

Muleflowarchitecturepart2
Muleflowarchitecturepart2Muleflowarchitecturepart2
Muleflowarchitecturepart2
 
Mule esb flow processing strategies
Mule esb flow processing strategiesMule esb flow processing strategies
Mule esb flow processing strategies
 
Mule splitters
Mule splittersMule splitters
Mule splitters
 
Performance tuning in mule
Performance tuning in mulePerformance tuning in mule
Performance tuning in mule
 
Mule Scatter-Gather component
Mule Scatter-Gather componentMule Scatter-Gather component
Mule Scatter-Gather component
 
Mule threading profile & processing strategy
Mule threading profile & processing strategyMule threading profile & processing strategy
Mule threading profile & processing strategy
 
Mule concepts filters scopes_routers
Mule concepts filters scopes_routersMule concepts filters scopes_routers
Mule concepts filters scopes_routers
 
Mule routing and filters
Mule routing and filtersMule routing and filters
Mule routing and filters
 
Routing in mule
Routing in muleRouting in mule
Routing in mule
 
Mule SOAP Router
Mule SOAP RouterMule SOAP Router
Mule SOAP Router
 
What is the difference between using private flow
What is the difference between using private flowWhat is the difference between using private flow
What is the difference between using private flow
 
Mule scopes 2
Mule scopes 2Mule scopes 2
Mule scopes 2
 
Rest based api with jms as backend
Rest based api with jms as backendRest based api with jms as backend
Rest based api with jms as backend
 

Viewers also liked

Input and output flow using file to string and logger component
Input and output flow using file to string and logger componentInput and output flow using file to string and logger component
Input and output flow using file to string and logger componentSon Nguyen
 
Presentación
PresentaciónPresentación
PresentaciónLisa Tai
 
Byte array to hex string transformer
Byte array to hex string transformerByte array to hex string transformer
Byte array to hex string transformerRahul Kumar
 
Práctica 2 - DRX SEM SDT
Práctica 2 - DRX SEM SDTPráctica 2 - DRX SEM SDT
Práctica 2 - DRX SEM SDTDiego Guzmán
 
Richard J. Weire Resume
Richard J. Weire ResumeRichard J. Weire Resume
Richard J. Weire ResumeRichard Weire
 
Hex string to byte array transformer
Hex string to byte array transformerHex string to byte array transformer
Hex string to byte array transformerRahul Kumar
 
Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016
Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016
Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016Fondazione Matera-Basilicata 2019
 
[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedades
[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedades[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedades
[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedadesDiego Guzmán
 
Mule
MuleMule
MuleF K
 
Creating custom aggregation strategy
Creating custom aggregation strategyCreating custom aggregation strategy
Creating custom aggregation strategyRahul Kumar
 

Viewers also liked (20)

Input and output flow using file to string and logger component
Input and output flow using file to string and logger componentInput and output flow using file to string and logger component
Input and output flow using file to string and logger component
 
Final Plans Book Submission
Final Plans Book SubmissionFinal Plans Book Submission
Final Plans Book Submission
 
Rupali life insurance company
Rupali life insurance companyRupali life insurance company
Rupali life insurance company
 
Presentación
PresentaciónPresentación
Presentación
 
Tarea 2
Tarea 2Tarea 2
Tarea 2
 
Byte array to hex string transformer
Byte array to hex string transformerByte array to hex string transformer
Byte array to hex string transformer
 
Práctica 2 - DRX SEM SDT
Práctica 2 - DRX SEM SDTPráctica 2 - DRX SEM SDT
Práctica 2 - DRX SEM SDT
 
Richard J. Weire Resume
Richard J. Weire ResumeRichard J. Weire Resume
Richard J. Weire Resume
 
Doc3
Doc3Doc3
Doc3
 
Hex string to byte array transformer
Hex string to byte array transformerHex string to byte array transformer
Hex string to byte array transformer
 
Manual
ManualManual
Manual
 
Chris Torch presentation - build up 28-29 giugno 2016
Chris Torch presentation - build up 28-29 giugno 2016Chris Torch presentation - build up 28-29 giugno 2016
Chris Torch presentation - build up 28-29 giugno 2016
 
Sergio Dogliani presentation - build up 14-15 luglio 2016
Sergio Dogliani presentation - build up 14-15 luglio 2016Sergio Dogliani presentation - build up 14-15 luglio 2016
Sergio Dogliani presentation - build up 14-15 luglio 2016
 
Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016
Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016
Svetlana Kuyumdzhieva presentation - build up 14-15 luglio 2016
 
Presentación
PresentaciónPresentación
Presentación
 
Mule esb httpflow
Mule esb   httpflowMule esb   httpflow
Mule esb httpflow
 
[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedades
[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedades[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedades
[GuzmánDiego] Informe Práctica 9 - Alcoholes, obtención y propiedades
 
Mule
MuleMule
Mule
 
Creating custom aggregation strategy
Creating custom aggregation strategyCreating custom aggregation strategy
Creating custom aggregation strategy
 
Mule esb lesson 1
Mule esb   lesson 1Mule esb   lesson 1
Mule esb lesson 1
 

Similar to Using scatter gather

Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control Rajkattamuri
 
Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control mdfkhan625
 
Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control AbdulImrankhan7
 
Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control javeed_mhd
 
Scatter gather flow control
Scatter gather flow controlScatter gather flow control
Scatter gather flow controlKhan625
 
Scatter gather flow control
Scatter gather flow controlScatter gather flow control
Scatter gather flow controlHasan Syed
 
Distributed cache updating for the dynamic source routing protocol(synopsis)
Distributed cache updating for the dynamic source routing protocol(synopsis)Distributed cache updating for the dynamic source routing protocol(synopsis)
Distributed cache updating for the dynamic source routing protocol(synopsis)Mumbai Academisc
 
An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...
An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...
An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...IOSR Journals
 
Performance Observation of Proactive and Reactive Routing Protocols with Incr...
Performance Observation of Proactive and Reactive Routing Protocols with Incr...Performance Observation of Proactive and Reactive Routing Protocols with Incr...
Performance Observation of Proactive and Reactive Routing Protocols with Incr...Computer Science Journals
 
IRJET - A Review of Routing Protocols for Manets and AEERP
IRJET - A Review of Routing Protocols for Manets and AEERPIRJET - A Review of Routing Protocols for Manets and AEERP
IRJET - A Review of Routing Protocols for Manets and AEERPIRJET Journal
 
Default and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer NetworksDefault and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer NetworksSonali Parab
 
PERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKS
PERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKSPERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKS
PERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKSijujournal
 
Performance comparison of routing protocols in mobile ad hoc networks
Performance comparison of routing protocols in mobile ad hoc networksPerformance comparison of routing protocols in mobile ad hoc networks
Performance comparison of routing protocols in mobile ad hoc networksijujournal
 
P ERFORMANCE C OMPARISON OF R OUTING P ROTOCOLS IN M OBILE A D H OC N E...
P ERFORMANCE C OMPARISON OF  R OUTING  P ROTOCOLS IN  M OBILE  A D  H OC  N E...P ERFORMANCE C OMPARISON OF  R OUTING  P ROTOCOLS IN  M OBILE  A D  H OC  N E...
P ERFORMANCE C OMPARISON OF R OUTING P ROTOCOLS IN M OBILE A D H OC N E...ijujournal
 

Similar to Using scatter gather (20)

Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control
 
Scatter gather
Scatter gather Scatter gather
Scatter gather
 
Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control
 
Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control
 
Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control
 
Scatter gather
Scatter gather Scatter gather
Scatter gather
 
Scatter gather flow control
Scatter gather flow controlScatter gather flow control
Scatter gather flow control
 
Scatter gather flow control
Scatter gather flow controlScatter gather flow control
Scatter gather flow control
 
Distributed cache updating for the dynamic source routing protocol(synopsis)
Distributed cache updating for the dynamic source routing protocol(synopsis)Distributed cache updating for the dynamic source routing protocol(synopsis)
Distributed cache updating for the dynamic source routing protocol(synopsis)
 
An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...
An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...
An Improvement on Route Recovery by Using Triangular Fuzzy Numbers on Route E...
 
Network Layer
Network LayerNetwork Layer
Network Layer
 
Ijtra130510
Ijtra130510Ijtra130510
Ijtra130510
 
Performance Observation of Proactive and Reactive Routing Protocols with Incr...
Performance Observation of Proactive and Reactive Routing Protocols with Incr...Performance Observation of Proactive and Reactive Routing Protocols with Incr...
Performance Observation of Proactive and Reactive Routing Protocols with Incr...
 
IRJET - A Review of Routing Protocols for Manets and AEERP
IRJET - A Review of Routing Protocols for Manets and AEERPIRJET - A Review of Routing Protocols for Manets and AEERP
IRJET - A Review of Routing Protocols for Manets and AEERP
 
Network Layer
Network LayerNetwork Layer
Network Layer
 
C 16
C 16C 16
C 16
 
Default and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer NetworksDefault and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer Networks
 
PERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKS
PERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKSPERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKS
PERFORMANCE COMPARISON OF ROUTING PROTOCOLS IN MOBILE AD HOC NETWORKS
 
Performance comparison of routing protocols in mobile ad hoc networks
Performance comparison of routing protocols in mobile ad hoc networksPerformance comparison of routing protocols in mobile ad hoc networks
Performance comparison of routing protocols in mobile ad hoc networks
 
P ERFORMANCE C OMPARISON OF R OUTING P ROTOCOLS IN M OBILE A D H OC N E...
P ERFORMANCE C OMPARISON OF  R OUTING  P ROTOCOLS IN  M OBILE  A D  H OC  N E...P ERFORMANCE C OMPARISON OF  R OUTING  P ROTOCOLS IN  M OBILE  A D  H OC  N E...
P ERFORMANCE C OMPARISON OF R OUTING P ROTOCOLS IN M OBILE A D H OC N E...
 

More from Rahul Kumar

Combine collections transformer
Combine collections transformerCombine collections transformer
Combine collections transformerRahul Kumar
 
Creating global functions
Creating global functionsCreating global functions
Creating global functionsRahul Kumar
 
Creating custom object store
Creating custom object storeCreating custom object store
Creating custom object storeRahul Kumar
 
Using parse template component
Using parse template componentUsing parse template component
Using parse template componentRahul Kumar
 
Using groovy component
Using groovy componentUsing groovy component
Using groovy componentRahul Kumar
 
Using expression component
Using expression componentUsing expression component
Using expression componentRahul Kumar
 
Creating custom transformer
Creating custom transformerCreating custom transformer
Creating custom transformerRahul Kumar
 
Creating custom aggregator
Creating custom aggregatorCreating custom aggregator
Creating custom aggregatorRahul Kumar
 
Creating custom filter
Creating custom filterCreating custom filter
Creating custom filterRahul Kumar
 
XML to DOM Transformer
XML to DOM TransformerXML to DOM Transformer
XML to DOM TransformerRahul Kumar
 
Dom to xml transformer
Dom to xml transformerDom to xml transformer
Dom to xml transformerRahul Kumar
 
Object to input stream transformer
Object to input stream transformerObject to input stream transformer
Object to input stream transformerRahul Kumar
 
Byte array to object transformer
Byte array to object transformerByte array to object transformer
Byte array to object transformerRahul Kumar
 
Byte array to string transformer
Byte array to string transformerByte array to string transformer
Byte array to string transformerRahul Kumar
 
Object to string transformer
Object to string transformerObject to string transformer
Object to string transformerRahul Kumar
 
Csv to json transform in simple steps
Csv to json transform in simple stepsCsv to json transform in simple steps
Csv to json transform in simple stepsRahul Kumar
 
Using idempotent filter
Using idempotent filterUsing idempotent filter
Using idempotent filterRahul Kumar
 
Using expression filter
Using expression filterUsing expression filter
Using expression filterRahul Kumar
 
Using JSON Schema Validator
Using JSON Schema ValidatorUsing JSON Schema Validator
Using JSON Schema ValidatorRahul Kumar
 

More from Rahul Kumar (20)

Combine collections transformer
Combine collections transformerCombine collections transformer
Combine collections transformer
 
Creating global functions
Creating global functionsCreating global functions
Creating global functions
 
Creating custom object store
Creating custom object storeCreating custom object store
Creating custom object store
 
Using parse template component
Using parse template componentUsing parse template component
Using parse template component
 
Using groovy component
Using groovy componentUsing groovy component
Using groovy component
 
Using expression component
Using expression componentUsing expression component
Using expression component
 
Creating custom transformer
Creating custom transformerCreating custom transformer
Creating custom transformer
 
Creating custom aggregator
Creating custom aggregatorCreating custom aggregator
Creating custom aggregator
 
Creating custom filter
Creating custom filterCreating custom filter
Creating custom filter
 
XML to DOM Transformer
XML to DOM TransformerXML to DOM Transformer
XML to DOM Transformer
 
Dom to xml transformer
Dom to xml transformerDom to xml transformer
Dom to xml transformer
 
Object to input stream transformer
Object to input stream transformerObject to input stream transformer
Object to input stream transformer
 
Byte array to object transformer
Byte array to object transformerByte array to object transformer
Byte array to object transformer
 
Byte array to string transformer
Byte array to string transformerByte array to string transformer
Byte array to string transformer
 
Object to string transformer
Object to string transformerObject to string transformer
Object to string transformer
 
Csv to json transform in simple steps
Csv to json transform in simple stepsCsv to json transform in simple steps
Csv to json transform in simple steps
 
Choice router
Choice routerChoice router
Choice router
 
Using idempotent filter
Using idempotent filterUsing idempotent filter
Using idempotent filter
 
Using expression filter
Using expression filterUsing expression filter
Using expression filter
 
Using JSON Schema Validator
Using JSON Schema ValidatorUsing JSON Schema Validator
Using JSON Schema Validator
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

Using scatter gather

  • 2. Scatter-Gather The routing message processor Scatter-Gather sends a request message to multiple targets concurrently. It collects the responses from all routes, and aggregates them into a single message. The Scatter-Gather router sends a message for concurrent processing to all configured routes. The thread executing the flow that owns the router waits until all routes complete or time out. Failure in one route does not stop the Scatter-Gather from sending messages to its other configured routes, so it is possible that many, or all routes may fail concurrently.
  • 3. Scatter-Gather By default, if any route fails, Scatter-Gather performs the following actions: sets the exception payload accordingly for each route throws a CompositeRoutingException, which maps each exception to its corresponding route using a sequential route ID Catching the CompositeRoutingException allows you to gather information on all failed routes. This exception exposes two methods which allow you to obtain the IDs of failed routes and the exceptions returned by each route. The getExceptions method returns a map where the key is an integer that identifies the index of the failed route, and the value is the exception itself. The getExceptionForRouteIndex(int) method returns the exception of the requested route ID.
  • 4. Default Behavior Errors out if any route results in Exception, although the the other routes are processed successfully. Uses org.mule.routing.CollectAllAggregationStrategy
  • 5. Overriding Default behavior Scatter-Gather allows you to define a custom aggregation strategy which overrides its default aggregation strategy. Among other things, custom gathering strategies allow you to: discard message responses merge message properties that originated in different routes discard failed messages without throwing an exception select only one from multiple responses Implement AggregationStrategy interface to customize
  • 6. Scatter Gather for Parallel processing Set maxThreadsActive for Scatter-Gather = number of routes in Scatter- Gather maxThreadsActive for flow
  • 7. Scatter Gather for Sequential processing Set maxThreadsActive for Scatter-Gather = 1