SlideShare a Scribd company logo
1 of 10
Mule – Design Considerations
-RajeshKumar
1
About Mule applications
 Java based apps that must be deployed to a Mule runtime
– Either on-premise or on CloudHub
 Packaged as zip file, referred to as deployable archive
– Universal format, for both on-premise and cloud
deployments
 Consist of one or more flows, stored in one or more XML files
 Can be developed, built and packaged using Anypoint Studio or
a third party build solution (Maven, Gradle)
 Built around the standard software pattern of Input-Processing-
Output
2
Basic design considerations
 Application type?
– Real time vs batch, high volume vs high throughput
 Monolithic vs modular design
– Team development, development standards & best practices
 Cloud-based vs on-prem vs hybrid
 Code managed by Anypoint Studio or Maven/Gradle
– Maven/Gradle needed for setting up continuous integration
 Security considerations
– Securing messages/communications
– Properties management
– Secured services/APIs
3
Receiving thread
Non-functional design considerations
 Synchronous vs asynchronous
 Single-threaded vs multi-threaded
 Transactionality options
 High throughput vs reliability
4
Receiving thread
Infrastructure design considerations
 Single runtime vs multiple runtimes vs cluster
 High availability
 Fail over
 Load balancing
 Bare-metal vs virtualization vs containers
5
Receiving thread
Development best practices
 Keep applications synchronous if possible (avoid serialization)
 Store as little as possible in session variables (serialization
overhead)
 Use bean payloads whenever possible
 Prefer MEL over JVM scripting languages
 Use VM queues instead of external message brokers if possible
 Use flow references instead of VM queues if possible
 Cache aggressively
 Avoid large volumes of business events
 Consider using message compression for asynchronous apps
6
Receiving thread
Structuring Mule applications
 Mule applications can (and should) be modular
– Monolithic applications are difficult to read and maintain
– Modular applications are better suitable for team
development
– Modular applications encourage reusability
 A Mule application can consist of multiple Anypoint Studio
projects, to be assembled during the build process
 Design flows to be small
 Extract duplicate code into reusable (sub/private) flows
 Define global exception strategies, applied on flow via references
7
Receiving thread
Organizing Mule configuration files
 Separating an application into multiple configuration files makes code
easier to read, work with, test and more maintainable
 Two supported options for loading multiple configuration files
– Side-by-side: Provide a list of independent configuration files to
load
Config.resources=global-config.xml,admin-config.xml
– Imported: Have one configuration file import several others, which
in-turn can import other files using Spring
<spring:beans>
<spring:import resource=”global-config.xml" />
<spring:import resource=”creditchecks-config.xml" />
<spring:import resource=”loanprocessing-config.xml” />
</spring:beans>
 import other files using Spring
 Can be used simultaneously
– All configuration files are loaded in the same context
8
THANKS
9
THANKS
9

More Related Content

Viewers also liked

RAVINDER SINGH(updated CV for tech super)
RAVINDER SINGH(updated CV for tech super)RAVINDER SINGH(updated CV for tech super)
RAVINDER SINGH(updated CV for tech super)
Ravinder singh
 
Carnaval
CarnavalCarnaval
Carnaval
msnancy
 

Viewers also liked (15)

Security spring security manager
Security   spring security managerSecurity   spring security manager
Security spring security manager
 
RAVINDER SINGH(updated CV for tech super)
RAVINDER SINGH(updated CV for tech super)RAVINDER SINGH(updated CV for tech super)
RAVINDER SINGH(updated CV for tech super)
 
Carnaval
CarnavalCarnaval
Carnaval
 
Mule security - spring security manager
Mule  security - spring security managerMule  security - spring security manager
Mule security - spring security manager
 
API Layer
API LayerAPI Layer
API Layer
 
Mule security
Mule  securityMule  security
Mule security
 
advanced metal forming previous question papers
 advanced metal forming previous question papers advanced metal forming previous question papers
advanced metal forming previous question papers
 
Risk assessment
Risk assessmentRisk assessment
Risk assessment
 
Continuous Integration Bamboo ve Php Uygulaması
Continuous Integration Bamboo ve Php UygulamasıContinuous Integration Bamboo ve Php Uygulaması
Continuous Integration Bamboo ve Php Uygulaması
 
ADI DAYS - Franco Zanardi
ADI DAYS - Franco ZanardiADI DAYS - Franco Zanardi
ADI DAYS - Franco Zanardi
 
Introduction to dataweave
Introduction to dataweaveIntroduction to dataweave
Introduction to dataweave
 
Variables in dataweave
Variables in dataweaveVariables in dataweave
Variables in dataweave
 
Open to What? The future of European education in the digital revolution - Dr...
Open to What?The future of European education in the digital revolution - Dr...Open to What?The future of European education in the digital revolution - Dr...
Open to What? The future of European education in the digital revolution - Dr...
 
Ang facebook-bilang-alternatibong-online-strategy-sa-negosyo(final)
Ang facebook-bilang-alternatibong-online-strategy-sa-negosyo(final)Ang facebook-bilang-alternatibong-online-strategy-sa-negosyo(final)
Ang facebook-bilang-alternatibong-online-strategy-sa-negosyo(final)
 
Independent cinema
Independent cinemaIndependent cinema
Independent cinema
 

Similar to Mule – design considerations

Please discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdfPlease discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdf
ajinthaenterprises
 
Mlb drupal bizday_presentation
Mlb drupal bizday_presentationMlb drupal bizday_presentation
Mlb drupal bizday_presentation
erlee72
 

Similar to Mule – design considerations (20)

Design considerations in MULE ESB
Design considerations in MULE ESBDesign considerations in MULE ESB
Design considerations in MULE ESB
 
Cloud adoption patterns
Cloud adoption patternsCloud adoption patterns
Cloud adoption patterns
 
Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016
 
Interoperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component ModelInteroperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component Model
 
Disposable infrastructure
Disposable infrastructureDisposable infrastructure
Disposable infrastructure
 
Cloudy with a Chance of Hadoop - Real World Considerations
Cloudy with a Chance of Hadoop - Real World ConsiderationsCloudy with a Chance of Hadoop - Real World Considerations
Cloudy with a Chance of Hadoop - Real World Considerations
 
Java8 - Under the hood
Java8 - Under the hoodJava8 - Under the hood
Java8 - Under the hood
 
Please discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdfPlease discuss Superscalar Processors.Please discuss embedded appl.pdf
Please discuss Superscalar Processors.Please discuss embedded appl.pdf
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
 
Software Engineering 101
Software Engineering 101Software Engineering 101
Software Engineering 101
 
Mule reference
Mule referenceMule reference
Mule reference
 
Magdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine LearningMagdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine Learning
 
Application Considerations for Cloud
Application Considerations for CloudApplication Considerations for Cloud
Application Considerations for Cloud
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
 
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
 
Effective Hadoop Cluster Management - Impetus Webinar
Effective Hadoop Cluster Management - Impetus WebinarEffective Hadoop Cluster Management - Impetus Webinar
Effective Hadoop Cluster Management - Impetus Webinar
 
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
 
Isn’t it Ironic that a Redfish is software defining you
Isn’t it Ironic that a Redfish is software defining you Isn’t it Ironic that a Redfish is software defining you
Isn’t it Ironic that a Redfish is software defining you
 
Mlb drupal bizday_presentation
Mlb drupal bizday_presentationMlb drupal bizday_presentation
Mlb drupal bizday_presentation
 

More from D.Rajesh Kumar

Mule soft meetup_-_finland_september_25th__2020 v2.0
Mule soft meetup_-_finland_september_25th__2020 v2.0Mule soft meetup_-_finland_september_25th__2020 v2.0
Mule soft meetup_-_finland_september_25th__2020 v2.0
D.Rajesh Kumar
 
Mule soft meetup_-_finland_july_11th__2020
Mule soft meetup_-_finland_july_11th__2020Mule soft meetup_-_finland_july_11th__2020
Mule soft meetup_-_finland_july_11th__2020
D.Rajesh Kumar
 

More from D.Rajesh Kumar (20)

Mule soft meetup_-_finland_september_25th__2020 v2.0
Mule soft meetup_-_finland_september_25th__2020 v2.0Mule soft meetup_-_finland_september_25th__2020 v2.0
Mule soft meetup_-_finland_september_25th__2020 v2.0
 
Meetup bangalore-sept5th 2020 (1)
Meetup bangalore-sept5th 2020 (1)Meetup bangalore-sept5th 2020 (1)
Meetup bangalore-sept5th 2020 (1)
 
Mule soft meetup_-_finland_july_11th__2020
Mule soft meetup_-_finland_july_11th__2020Mule soft meetup_-_finland_july_11th__2020
Mule soft meetup_-_finland_july_11th__2020
 
Bangalore mulesoft meetup#10
Bangalore mulesoft meetup#10Bangalore mulesoft meetup#10
Bangalore mulesoft meetup#10
 
Meetup bangalore 9_novupdated
Meetup bangalore 9_novupdatedMeetup bangalore 9_novupdated
Meetup bangalore 9_novupdated
 
Meetup bangalore aug31st2019
Meetup bangalore aug31st2019Meetup bangalore aug31st2019
Meetup bangalore aug31st2019
 
Meetup bangalore june29th2019
Meetup bangalore june29th2019Meetup bangalore june29th2019
Meetup bangalore june29th2019
 
mulesoft meetup @ bangalore
mulesoft meetup @ bangaloremulesoft meetup @ bangalore
mulesoft meetup @ bangalore
 
Meetup_Bangalore_Rajesh
Meetup_Bangalore_RajeshMeetup_Bangalore_Rajesh
Meetup_Bangalore_Rajesh
 
Calico and container
Calico and containerCalico and container
Calico and container
 
Calico docker+ipam
Calico docker+ipamCalico docker+ipam
Calico docker+ipam
 
Calico architecture
Calico architectureCalico architecture
Calico architecture
 
Calico to secure host interfaces
Calico to secure host interfacesCalico to secure host interfaces
Calico to secure host interfaces
 
Calico and how interprets neutron api
Calico and how interprets neutron apiCalico and how interprets neutron api
Calico and how interprets neutron api
 
Calico with open stack and chef
Calico with open stack and chefCalico with open stack and chef
Calico with open stack and chef
 
Calico with open stack
Calico with open stackCalico with open stack
Calico with open stack
 
Calico with docker
Calico with dockerCalico with docker
Calico with docker
 
Object Store in Mule
Object Store in MuleObject Store in Mule
Object Store in Mule
 
Slack connector with in MULE
Slack connector with in MULESlack connector with in MULE
Slack connector with in MULE
 
MuleSoft Offers a Data Migration Solution
MuleSoft Offers a Data Migration SolutionMuleSoft Offers a Data Migration Solution
MuleSoft Offers a Data Migration Solution
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Mule – design considerations

  • 1. Mule – Design Considerations -RajeshKumar 1
  • 2. About Mule applications  Java based apps that must be deployed to a Mule runtime – Either on-premise or on CloudHub  Packaged as zip file, referred to as deployable archive – Universal format, for both on-premise and cloud deployments  Consist of one or more flows, stored in one or more XML files  Can be developed, built and packaged using Anypoint Studio or a third party build solution (Maven, Gradle)  Built around the standard software pattern of Input-Processing- Output 2
  • 3. Basic design considerations  Application type? – Real time vs batch, high volume vs high throughput  Monolithic vs modular design – Team development, development standards & best practices  Cloud-based vs on-prem vs hybrid  Code managed by Anypoint Studio or Maven/Gradle – Maven/Gradle needed for setting up continuous integration  Security considerations – Securing messages/communications – Properties management – Secured services/APIs 3 Receiving thread
  • 4. Non-functional design considerations  Synchronous vs asynchronous  Single-threaded vs multi-threaded  Transactionality options  High throughput vs reliability 4 Receiving thread
  • 5. Infrastructure design considerations  Single runtime vs multiple runtimes vs cluster  High availability  Fail over  Load balancing  Bare-metal vs virtualization vs containers 5 Receiving thread
  • 6. Development best practices  Keep applications synchronous if possible (avoid serialization)  Store as little as possible in session variables (serialization overhead)  Use bean payloads whenever possible  Prefer MEL over JVM scripting languages  Use VM queues instead of external message brokers if possible  Use flow references instead of VM queues if possible  Cache aggressively  Avoid large volumes of business events  Consider using message compression for asynchronous apps 6 Receiving thread
  • 7. Structuring Mule applications  Mule applications can (and should) be modular – Monolithic applications are difficult to read and maintain – Modular applications are better suitable for team development – Modular applications encourage reusability  A Mule application can consist of multiple Anypoint Studio projects, to be assembled during the build process  Design flows to be small  Extract duplicate code into reusable (sub/private) flows  Define global exception strategies, applied on flow via references 7 Receiving thread
  • 8. Organizing Mule configuration files  Separating an application into multiple configuration files makes code easier to read, work with, test and more maintainable  Two supported options for loading multiple configuration files – Side-by-side: Provide a list of independent configuration files to load Config.resources=global-config.xml,admin-config.xml – Imported: Have one configuration file import several others, which in-turn can import other files using Spring <spring:beans> <spring:import resource=”global-config.xml" /> <spring:import resource=”creditchecks-config.xml" /> <spring:import resource=”loanprocessing-config.xml” /> </spring:beans>  import other files using Spring  Can be used simultaneously – All configuration files are loaded in the same context 8