SlideShare a Scribd company logo
1 of 14
Mule Idempotent Filter
Part I
RAMANAN T D
Mule ESB – An ESB for the Modern Enterprise
Mule ESB – An ESB for the Modern Enterprise
 Idempotent filter ensures that only unique messages are received
by a service by checking the unique ID of the incoming message.
 Idempotent Filter is used to avoid any duplicate message in our
Mule flow
 This filter also ensures removal of duplicate messages i.e., it will not
allow duplicate messages to pass through.
 Note:
✓ ID can be generated from the message using an expression defined in the
'idExpression' attribute.
✓ By default, the expression used is #[message:id] which means the underlying
endpoint must support unique message IDs for this to work.
✓ Otherwise, a UniqueIdNotSupportedException is thrown.
Idempotent Filter
1
Mule ESB – An ESB for the Modern Enterprise
Through idempotent filter, we can achieve uniqueness of messages via
 in-memory-store
 simple-text-file-store
 custom-object-store
 managed-store
Ways to achieve uniqueness
2
Mule ESB – An ESB for the Modern Enterprise
Attributes of idempotent-message-filter
3
Attribute Type Required Default Description
1 name name
(no spaces)
No None Identifies the processor so that other elements can
reference it. Required if the processor is defined at
the global level.
2 onUnaccepted string No None Events that are not accepted by the filter are sent to
this (optional) named message processor.
3 throwOnUnaccepted boolean No None Whether to throw an exception if a message is not
accepted.
4 idExpression string No None Defines one or more expressions to use when
extracting the ID from the message.
5 valueExpression string No None Defines one or more expressions to use when
extracting the value from the message.
6 storePrefix name
(no spaces)
No None Defines the prefix of the object store names.
Mule ESB – An ESB for the Modern Enterprise
Child Elements of idempotent-message-filter
4
Name Cardinality Description
abstract-object-store 0..1
A placeholder for an object store that can be used by
routers to maintain state.
Mule ESB – An ESB for the Modern Enterprise
Attributes of idempotent-redelivery-policy
1
Attribute Type Required Default Description
1 maxRedeliveryCount integer No 5 The maximum number of times a message can be
redelivered and processed unsuccessfully before triggering
process-failed-message.
2 useSecureHash boolean No true Whether to use a secure hash algorithm to identify a
redelivered message.
3 messageDigestAlgorithm string No None The secure hashing algorithm to use. If not set, the default is
SHA-256.
4 idExpression string No None Defines one or more expressions to use to determine when
a message has been redelivered.
5 object-store-ref string No None The object store where the redelivery counter for each
message is going to be stored.
Mule ESB – An ESB for the Modern Enterprise
Child Elements of idempotent-redelivery-policy
1
Name Cardinality Description
dead-letter-queue 0..1
Message processor to call if a message exceeds its
redelivery count without being processed successfully.
Mule ESB – An ESB for the Modern Enterprise
Ensures that only unique messages are received by a service by calculating the
hash of the message itself using a message digest algorithm.
This provides a value with an infinitesimally small chance of a collision.
This can be used to filter message duplicates.
This class is useful when the message does not support unique identifiers.
Note:
✓ The hash is calculated over the entire byte array representing the message, so
any leading or trailing spaces or extraneous bytes (like padding) can produce
different hash values for the same semantic message content.
✓ Care should be taken to ensure that messages do not contain extraneous bytes.
Idempotent Secure Hash Message Filter
5
Mule ESB – An ESB for the Modern Enterprise
Ensures that only unique messages are received by a service by checking the
unique ID of the incoming message.
Note:
✓ The ID used can be generated from the message using an expression defined in
the idExpression attribute.
✓ By default, this expression used is #[message:id]
✓ This means that the underlying endpoint must support unique message IDs for
this to work.
✓ Otherwise, a UniqueIdNotSupportedException is thrown.
Idempotent Receiver Router
6
Mule ESB – An ESB for the Modern Enterprise
Attributes of idempotent-receiver-router
7
Attribute Type Required Default Description
1 idExpression string No None Identifies the processor so that other elements can
reference it. Required if the processor is defined at the
global level.
Mule ESB – An ESB for the Modern Enterprise
Child Elements of idempotent-receiver-router
8
Name Cardinality Description
abstract-object-
store
0..1
A placeholder for an object store that can be used by
routers to maintain state. Idempotent secure hash
receiver router.
Mule ESB – An ESB for the Modern Enterprise
Ensures that only unique messages are received by a service by calculating the
hash of the message itself using a message digest algorithm.
This provides a value with an infinitesimally small chance of a collision.
This can be used to filter message duplicates.
This class is useful when the message does not support unique identifiers.
Note:
✓ The hash is calculated over the entire byte array representing the message, so
any leading or trailing spaces or extraneous bytes (like padding) can produce
different hash values for the same semantic message content.
✓ Care should be taken to ensure that messages do not contain extraneous bytes.
Idempotent Secure Hash Message Filter
9
Mule ESB – An ESB for the Modern Enterprise
Attributes of idempotent-secure-hash-receiver-router
10
Attribute Type Required Default Description
1 messageDigestAlgorithm string No None The secure hashing algorithm to use.
If not set, the default is SHA-256.
Mule ESB – An ESB for the Modern Enterprise
Child Elements of idempotent-secure-hash-receiver-router
11
Name Cardinality Description
abstract-object-
store
0..1
A placeholder for an object store that can be used by
routers to maintain state. Idempotent secure hash
receiver router.

More Related Content

What's hot

Introduction to testing mule
Introduction to testing muleIntroduction to testing mule
Introduction to testing muleRamakrishna kapa
 
Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400himajareddys
 
Mule esb add logger to existing flow
Mule esb add logger to existing flowMule esb add logger to existing flow
Mule esb add logger to existing flowGermano Barba
 
Message properties component in mule
Message properties component in muleMessage properties component in mule
Message properties component in muleKhan625
 
Using message enricher
Using message enricherUsing message enricher
Using message enricherSon Nguyen
 
Send email attachment using smtp in mule esb
Send email attachment using smtp in mule esbSend email attachment using smtp in mule esb
Send email attachment using smtp in mule esbPraneethchampion
 
Idempotent filter in mule
Idempotent filter in muleIdempotent filter in mule
Idempotent filter in muleMohammed246
 
Xml to xml transformation in mule
Xml to xml transformation in muleXml to xml transformation in mule
Xml to xml transformation in muleRajkattamuri
 
Deploying and running mule standalone
Deploying and running mule standaloneDeploying and running mule standalone
Deploying and running mule standalonemdfkhan625
 
Mule ESB SMTP Connector Integration
Mule ESB SMTP Connector  IntegrationMule ESB SMTP Connector  Integration
Mule ESB SMTP Connector IntegrationAnilKumar Etagowni
 

What's hot (13)

Introduction to testing mule
Introduction to testing muleIntroduction to testing mule
Introduction to testing mule
 
Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400
 
Mule esb add logger to existing flow
Mule esb add logger to existing flowMule esb add logger to existing flow
Mule esb add logger to existing flow
 
Message properties component in mule
Message properties component in muleMessage properties component in mule
Message properties component in mule
 
Using message enricher
Using message enricherUsing message enricher
Using message enricher
 
Send email attachment using smtp in mule esb
Send email attachment using smtp in mule esbSend email attachment using smtp in mule esb
Send email attachment using smtp in mule esb
 
Idempotent filter in mule
Idempotent filter in muleIdempotent filter in mule
Idempotent filter in mule
 
Xml to xml transformation in mule
Xml to xml transformation in muleXml to xml transformation in mule
Xml to xml transformation in mule
 
Mule message enricher
Mule message enricherMule message enricher
Mule message enricher
 
Deploying and running mule standalone
Deploying and running mule standaloneDeploying and running mule standalone
Deploying and running mule standalone
 
Idempotent filter with simple file
Idempotent filter with simple fileIdempotent filter with simple file
Idempotent filter with simple file
 
Mule ESB SMTP Connector Integration
Mule ESB SMTP Connector  IntegrationMule ESB SMTP Connector  Integration
Mule ESB SMTP Connector Integration
 
Mule esb :Data Weave
Mule esb :Data WeaveMule esb :Data Weave
Mule esb :Data Weave
 

Similar to Mule Idempotent Filter - Part I

Using idempotent filter
Using idempotent filterUsing idempotent filter
Using idempotent filterRahul Kumar
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in muleSon Nguyen
 
Mule message processor or routers
Mule message processor or routersMule message processor or routers
Mule message processor or routersSon Nguyen
 
Mule message processor or routers
Mule message processor or routersMule message processor or routers
Mule message processor or routerssathyaraj Anand
 
Mulesoft idempotent Message Filter
Mulesoft idempotent Message FilterMulesoft idempotent Message Filter
Mulesoft idempotent Message Filterkumar gaurav
 
InforUMobile SMS API
InforUMobile SMS APIInforUMobile SMS API
InforUMobile SMS APIinforumobile
 
Pgp pretty good privacy
Pgp pretty good privacyPgp pretty good privacy
Pgp pretty good privacyPawan Arya
 
Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...
Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...
Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...IRJET Journal
 
InforUMobile UK SMS API
InforUMobile UK SMS APIInforUMobile UK SMS API
InforUMobile UK SMS APIinforumobile
 
Java message service
Java message serviceJava message service
Java message serviceVeeramani S
 
SMS API InforUMobile
SMS API InforUMobileSMS API InforUMobile
SMS API InforUMobileinforumobile
 
InforUMobile SMS API
InforUMobile SMS APIInforUMobile SMS API
InforUMobile SMS APIinforumobile
 
Encrypting E-mail Messages
Encrypting E-mail MessagesEncrypting E-mail Messages
Encrypting E-mail MessagesD's Surti
 
Nimbuzz march2012
Nimbuzz march2012Nimbuzz march2012
Nimbuzz march2012nlwebperf
 
Mail store server4 manual-en
Mail store server4 manual-enMail store server4 manual-en
Mail store server4 manual-enguest8e6971
 
Until successful scope in mule
Until successful scope in muleUntil successful scope in mule
Until successful scope in muleAnkit Lawaniya
 
Message Queuing (MSMQ)
Message Queuing (MSMQ)Message Queuing (MSMQ)
Message Queuing (MSMQ)Senior Dev
 

Similar to Mule Idempotent Filter - Part I (20)

Using idempotent filter
Using idempotent filterUsing idempotent filter
Using idempotent filter
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in mule
 
Mule message processor or routers
Mule message processor or routersMule message processor or routers
Mule message processor or routers
 
Filter example
Filter exampleFilter example
Filter example
 
Mule message processor or routers
Mule message processor or routersMule message processor or routers
Mule message processor or routers
 
Mulesoft idempotent Message Filter
Mulesoft idempotent Message FilterMulesoft idempotent Message Filter
Mulesoft idempotent Message Filter
 
InforUMobile SMS API
InforUMobile SMS APIInforUMobile SMS API
InforUMobile SMS API
 
Pgp pretty good privacy
Pgp pretty good privacyPgp pretty good privacy
Pgp pretty good privacy
 
Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...
Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...
Securing Messages from Brute Force Attack by Combined Approach of Honey Encry...
 
InforUMobile UK SMS API
InforUMobile UK SMS APIInforUMobile UK SMS API
InforUMobile UK SMS API
 
Java message service
Java message serviceJava message service
Java message service
 
SMS API InforUMobile
SMS API InforUMobileSMS API InforUMobile
SMS API InforUMobile
 
InforUMobile SMS API
InforUMobile SMS APIInforUMobile SMS API
InforUMobile SMS API
 
Encrypting E-mail Messages
Encrypting E-mail MessagesEncrypting E-mail Messages
Encrypting E-mail Messages
 
Nimbuzz march2012
Nimbuzz march2012Nimbuzz march2012
Nimbuzz march2012
 
Mail store server4 manual-en
Mail store server4 manual-enMail store server4 manual-en
Mail store server4 manual-en
 
Until successful scope in mule
Until successful scope in muleUntil successful scope in mule
Until successful scope in mule
 
S_MIME[1].ppt
S_MIME[1].pptS_MIME[1].ppt
S_MIME[1].ppt
 
Message Queuing (MSMQ)
Message Queuing (MSMQ)Message Queuing (MSMQ)
Message Queuing (MSMQ)
 
Email security
Email securityEmail security
Email security
 

Recently uploaded

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 

Mule Idempotent Filter - Part I

  • 1. Mule Idempotent Filter Part I RAMANAN T D Mule ESB – An ESB for the Modern Enterprise
  • 2. Mule ESB – An ESB for the Modern Enterprise  Idempotent filter ensures that only unique messages are received by a service by checking the unique ID of the incoming message.  Idempotent Filter is used to avoid any duplicate message in our Mule flow  This filter also ensures removal of duplicate messages i.e., it will not allow duplicate messages to pass through.  Note: ✓ ID can be generated from the message using an expression defined in the 'idExpression' attribute. ✓ By default, the expression used is #[message:id] which means the underlying endpoint must support unique message IDs for this to work. ✓ Otherwise, a UniqueIdNotSupportedException is thrown. Idempotent Filter 1
  • 3. Mule ESB – An ESB for the Modern Enterprise Through idempotent filter, we can achieve uniqueness of messages via  in-memory-store  simple-text-file-store  custom-object-store  managed-store Ways to achieve uniqueness 2
  • 4. Mule ESB – An ESB for the Modern Enterprise Attributes of idempotent-message-filter 3 Attribute Type Required Default Description 1 name name (no spaces) No None Identifies the processor so that other elements can reference it. Required if the processor is defined at the global level. 2 onUnaccepted string No None Events that are not accepted by the filter are sent to this (optional) named message processor. 3 throwOnUnaccepted boolean No None Whether to throw an exception if a message is not accepted. 4 idExpression string No None Defines one or more expressions to use when extracting the ID from the message. 5 valueExpression string No None Defines one or more expressions to use when extracting the value from the message. 6 storePrefix name (no spaces) No None Defines the prefix of the object store names.
  • 5. Mule ESB – An ESB for the Modern Enterprise Child Elements of idempotent-message-filter 4 Name Cardinality Description abstract-object-store 0..1 A placeholder for an object store that can be used by routers to maintain state.
  • 6. Mule ESB – An ESB for the Modern Enterprise Attributes of idempotent-redelivery-policy 1 Attribute Type Required Default Description 1 maxRedeliveryCount integer No 5 The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message. 2 useSecureHash boolean No true Whether to use a secure hash algorithm to identify a redelivered message. 3 messageDigestAlgorithm string No None The secure hashing algorithm to use. If not set, the default is SHA-256. 4 idExpression string No None Defines one or more expressions to use to determine when a message has been redelivered. 5 object-store-ref string No None The object store where the redelivery counter for each message is going to be stored.
  • 7. Mule ESB – An ESB for the Modern Enterprise Child Elements of idempotent-redelivery-policy 1 Name Cardinality Description dead-letter-queue 0..1 Message processor to call if a message exceeds its redelivery count without being processed successfully.
  • 8. Mule ESB – An ESB for the Modern Enterprise Ensures that only unique messages are received by a service by calculating the hash of the message itself using a message digest algorithm. This provides a value with an infinitesimally small chance of a collision. This can be used to filter message duplicates. This class is useful when the message does not support unique identifiers. Note: ✓ The hash is calculated over the entire byte array representing the message, so any leading or trailing spaces or extraneous bytes (like padding) can produce different hash values for the same semantic message content. ✓ Care should be taken to ensure that messages do not contain extraneous bytes. Idempotent Secure Hash Message Filter 5
  • 9. Mule ESB – An ESB for the Modern Enterprise Ensures that only unique messages are received by a service by checking the unique ID of the incoming message. Note: ✓ The ID used can be generated from the message using an expression defined in the idExpression attribute. ✓ By default, this expression used is #[message:id] ✓ This means that the underlying endpoint must support unique message IDs for this to work. ✓ Otherwise, a UniqueIdNotSupportedException is thrown. Idempotent Receiver Router 6
  • 10. Mule ESB – An ESB for the Modern Enterprise Attributes of idempotent-receiver-router 7 Attribute Type Required Default Description 1 idExpression string No None Identifies the processor so that other elements can reference it. Required if the processor is defined at the global level.
  • 11. Mule ESB – An ESB for the Modern Enterprise Child Elements of idempotent-receiver-router 8 Name Cardinality Description abstract-object- store 0..1 A placeholder for an object store that can be used by routers to maintain state. Idempotent secure hash receiver router.
  • 12. Mule ESB – An ESB for the Modern Enterprise Ensures that only unique messages are received by a service by calculating the hash of the message itself using a message digest algorithm. This provides a value with an infinitesimally small chance of a collision. This can be used to filter message duplicates. This class is useful when the message does not support unique identifiers. Note: ✓ The hash is calculated over the entire byte array representing the message, so any leading or trailing spaces or extraneous bytes (like padding) can produce different hash values for the same semantic message content. ✓ Care should be taken to ensure that messages do not contain extraneous bytes. Idempotent Secure Hash Message Filter 9
  • 13. Mule ESB – An ESB for the Modern Enterprise Attributes of idempotent-secure-hash-receiver-router 10 Attribute Type Required Default Description 1 messageDigestAlgorithm string No None The secure hashing algorithm to use. If not set, the default is SHA-256.
  • 14. Mule ESB – An ESB for the Modern Enterprise Child Elements of idempotent-secure-hash-receiver-router 11 Name Cardinality Description abstract-object- store 0..1 A placeholder for an object store that can be used by routers to maintain state. Idempotent secure hash receiver router.