SlideShare a Scribd company logo
Tips and Tricks for Advanced
Developers
All contents © MuleSoft Inc.
Objectives
3
• Single project for all APIs
• Common code and resources
• Automated CI/CD pipeline
All contents © MuleSoft Inc.
Fine print
4
• This is one of many possible ways – many ways to skin a mule
• Many of these tools and techniques are not officially supported –
roll your own
• May become obsolete when new products are released
All contents © MuleSoft Inc.
Example use case
5
• ACME API
• Two systems, System ONE and System TWO
• Two types of resources – widget and gadget
All contents © MuleSoft Inc.
Multi-module Maven project
6
• Parent POM
• Domain project
• Shared resources project
• Separate project for each API
All contents © MuleSoft Inc.
Domain with conditional imports
7
• Connector has the same name but
different configs
• Embedded ActiveMQ local,
Websphere MQ on prod
• No need for TLS config on dev machine
All contents © MuleSoft Inc.
Domain with conditional imports
8
Domain XML config
common.local.xml
common.prod.xml
All contents © MuleSoft Inc.
Separate Resources Project
9
• Common custom Java classes, mappings, XML snippets,
RAML, schemas, examples
• Built as a JAR
• Listed as a dependency in all API implementation POMs
or in a domain (and loaded by a shared CL)
• Can be versioned independently
All contents © MuleSoft Inc.
Separate Resources Project - examples
10
• Custom Java classes – e.g. custom transformers
• Mappings – from and to canonical data model
• XML snippets – common and reusable exception strategies,
flows and sub-flows, object stores
• RAML, schemas, examples – system APIs may use canonical
data model
All contents © MuleSoft Inc.
Dynamic parse-template
11
• Custom Java transformer
• Can be used to load a file given the expression which
evaluates to a file name
• Just like built-in parse-template, can evaluate expressions inside the file
All contents © MuleSoft Inc.
Dynamic DataWeave mappings
12
• The flow is the same but request and response mappings are different
• Can I set mapping names in the APIKit request flow and invoke the
common code which calls the underlying system
• MEL function dw() evaluates a DataWeave script
• DataWeave script can be loaded using the dynamic
parse-template transformer
All contents © MuleSoft Inc.
Bonus: Coding Style and Naming Convention
13
https://github.com/javaduke/ACME_API/tree/master/docs
All contents © MuleSoft Inc.
Show me the goodies
14
https://github.com/javaduke/ACME_API/
Apache Maven: https://maven.apache.org
IntelliJ IDEA: https://www.jetbrains.com/idea/
Mule plugins for IntelliJ IDEA:
- https://plugins.jetbrains.com/idea/plugin/8212-mule-esb-plugin-for-intellij
- https://plugins.jetbrains.com/idea/plugin/8458-data-weave-intellij-plugin-
- https://plugins.jetbrains.com/idea/plugin/8459-raml-plugin-for-intellij
All contents © MuleSoft Inc.
Don’t forget the survey
15
• Why take the survey?
– Takes less than 2 minutes
– We value your feedback and apply it when deciding next year’s content and
speakers
– Surveys = Prizes!! Earn 55 points for a chance to win $250 in cash prizes
• See “Play To Win” in the Mobile App for details
• Where’s my survey?
– Log into the mobile app
– Click “Surveys” on the Tool Bar
– Find the relevant survey for this session slot
Thank you!
Mule Application
Enhancements
All contents © MuleSoft Inc.
Use case
• The integration layer have to sync records from Salesforce to Oracle
• The information is contained in three related Salesforce objects in a hierarchy and needs to be moved to
three different tables in Oracle
• If the records already exist in Oracle they will be updated, otherwise, inserted
All contents © MuleSoft Inc.
The first approach
All contents © MuleSoft Inc.
The first approach
All contents © MuleSoft Inc.
The first approach
All contents © MuleSoft Inc.
The issues
• Hard to debug and control since we had nested batch jobs that were triggered asynchronously
• Data inconsistencies arose since every Oracle operation was processed in a separate thread
• Batch module spawns multiple threads so when the job had to process a lot of records memory usage
increased and the runtime ran out of memory under certain scenarios
• When the poll processor triggered a new batch while there was a job running caused a job overlap
All contents © MuleSoft Inc.
The new approach (Part 1)
• Queue based to enable clustering and transactionality, batch is not cluster aware
• Single query from Salesforce
• Migrating from separate Insert/Update operations to Merge to prevent multiple calls
• Transactional scope to process records in Oracle
All contents © MuleSoft Inc.
The new approach (Part 2)
All contents © MuleSoft Inc.
Lessons learned
• Have small and reusable flows that are responsible of single tasks
• Enable logs with the right levels depending on the scope
• Avoid chatty flows
• Reduce the use of local variables and try to store only simple values, not large sets of records
• Load test should be done in earlier phases to assess design

More Related Content

What's hot

Ahmedabad MuleSoft Meetup #5
Ahmedabad MuleSoft Meetup #5 Ahmedabad MuleSoft Meetup #5
Ahmedabad MuleSoft Meetup #5 Tejas Purohit
 
Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4Tejas Purohit
 
Object Store V2 Workshop
Object Store V2 WorkshopObject Store V2 Workshop
Object Store V2 WorkshopMuleSoft
 
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...MuleSoft
 
CI/CD at Atlassian using Anypoint Platform
CI/CD at Atlassian using Anypoint PlatformCI/CD at Atlassian using Anypoint Platform
CI/CD at Atlassian using Anypoint PlatformSabrina Marechal
 
Hyderabad meet up-sep12
Hyderabad meet up-sep12Hyderabad meet up-sep12
Hyderabad meet up-sep12Sravan Lingam
 
Mule soft riyadh virtual meetup_30_aug
Mule soft riyadh virtual meetup_30_augMule soft riyadh virtual meetup_30_aug
Mule soft riyadh virtual meetup_30_augsatyasekhar123
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applicationsMuleSoft
 
10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migrationCoforge (Erstwhile WHISHWORKS)
 
Introduction to Mulesoft
Introduction to MulesoftIntroduction to Mulesoft
Introduction to Mulesoftvenkata20k
 
On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)Sandeep Deshmukh
 
Baltimore jan2019 mule4
Baltimore jan2019 mule4Baltimore jan2019 mule4
Baltimore jan2019 mule4ManjuKumara GH
 
Securing ap is oauth and fine grained access control
Securing ap is   oauth and fine grained access controlSecuring ap is   oauth and fine grained access control
Securing ap is oauth and fine grained access controlAaronLieberman5
 
Product Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint PlatformProduct Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint PlatformMuleSoft
 
How to Secure Mule API's With a Demo
How to Secure Mule API's With a DemoHow to Secure Mule API's With a Demo
How to Secure Mule API's With a DemoManjuKumara GH
 
Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12Akshata Sawant
 
MuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteMuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteSubhash Patel
 
Baltimore nov2018 meetup
Baltimore nov2018 meetupBaltimore nov2018 meetup
Baltimore nov2018 meetupManjuKumara GH
 

What's hot (20)

Ahmedabad MuleSoft Meetup #5
Ahmedabad MuleSoft Meetup #5 Ahmedabad MuleSoft Meetup #5
Ahmedabad MuleSoft Meetup #5
 
Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4
 
Object Store V2 Workshop
Object Store V2 WorkshopObject Store V2 Workshop
Object Store V2 Workshop
 
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
 
CI/CD at Atlassian using Anypoint Platform
CI/CD at Atlassian using Anypoint PlatformCI/CD at Atlassian using Anypoint Platform
CI/CD at Atlassian using Anypoint Platform
 
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
 
Hyderabad meet up-sep12
Hyderabad meet up-sep12Hyderabad meet up-sep12
Hyderabad meet up-sep12
 
WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019
WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019
WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019
 
Mule soft riyadh virtual meetup_30_aug
Mule soft riyadh virtual meetup_30_augMule soft riyadh virtual meetup_30_aug
Mule soft riyadh virtual meetup_30_aug
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applications
 
10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration
 
Introduction to Mulesoft
Introduction to MulesoftIntroduction to Mulesoft
Introduction to Mulesoft
 
On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)
 
Baltimore jan2019 mule4
Baltimore jan2019 mule4Baltimore jan2019 mule4
Baltimore jan2019 mule4
 
Securing ap is oauth and fine grained access control
Securing ap is   oauth and fine grained access controlSecuring ap is   oauth and fine grained access control
Securing ap is oauth and fine grained access control
 
Product Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint PlatformProduct Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint Platform
 
How to Secure Mule API's With a Demo
How to Secure Mule API's With a DemoHow to Secure Mule API's With a Demo
How to Secure Mule API's With a Demo
 
Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12
 
MuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteMuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_Charlotte
 
Baltimore nov2018 meetup
Baltimore nov2018 meetupBaltimore nov2018 meetup
Baltimore nov2018 meetup
 

Similar to Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter

Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Rajesh Maheshwari
 
Mule soft meetup warsaw november 13th, 2019
Mule soft meetup   warsaw november 13th, 2019Mule soft meetup   warsaw november 13th, 2019
Mule soft meetup warsaw november 13th, 2019Patryk Bandurski
 
Meetup hyderabad mule-4.x
Meetup hyderabad mule-4.xMeetup hyderabad mule-4.x
Meetup hyderabad mule-4.xSantosh Ojha
 
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideMuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideManish Kumar Yadav
 
Provisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerProvisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerSimon Haslam
 
West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6Francis Edwards
 
Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019Zubair Aslam
 
MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019Subhash Patel
 
Mule integration-application
Mule integration-applicationMule integration-application
Mule integration-applicationNaresh Naidu
 
Connect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom ConnectorsConnect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom ConnectorsAaronLieberman5
 
Mumbai MuleSoft Meetup 11
Mumbai MuleSoft Meetup 11Mumbai MuleSoft Meetup 11
Mumbai MuleSoft Meetup 11Akshata Sawant
 
Custom Connector development using Mule SDK
Custom Connector development using Mule SDKCustom Connector development using Mule SDK
Custom Connector development using Mule SDKNavin Kare
 
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom ConnectorsHow to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom ConnectorsAaronLieberman5
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
Using MySQL in Automated Testing
Using MySQL in Automated TestingUsing MySQL in Automated Testing
Using MySQL in Automated TestingMorgan Tocker
 

Similar to Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter (20)

Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup
 
Mule soft meetup warsaw november 13th, 2019
Mule soft meetup   warsaw november 13th, 2019Mule soft meetup   warsaw november 13th, 2019
Mule soft meetup warsaw november 13th, 2019
 
Meetup hyderabad mule-4.x
Meetup hyderabad mule-4.xMeetup hyderabad mule-4.x
Meetup hyderabad mule-4.x
 
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideMuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
 
Cmm vm 002
Cmm vm 002Cmm vm 002
Cmm vm 002
 
Provisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerProvisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack Manager
 
West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6
 
Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019
 
02 basics
02 basics02 basics
02 basics
 
MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019
 
Mule integration-application
Mule integration-applicationMule integration-application
Mule integration-application
 
Mulesoft meetup 29.06
Mulesoft meetup 29.06Mulesoft meetup 29.06
Mulesoft meetup 29.06
 
Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1
 
Connect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom ConnectorsConnect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom Connectors
 
Mumbai MuleSoft Meetup 11
Mumbai MuleSoft Meetup 11Mumbai MuleSoft Meetup 11
Mumbai MuleSoft Meetup 11
 
Custom Connector development using Mule SDK
Custom Connector development using Mule SDKCustom Connector development using Mule SDK
Custom Connector development using Mule SDK
 
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom ConnectorsHow to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
Require js training
Require js trainingRequire js training
Require js training
 
Using MySQL in Automated Testing
Using MySQL in Automated TestingUsing MySQL in Automated Testing
Using MySQL in Automated Testing
 

More from MuleSoft

The CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationThe CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationMuleSoft
 
Gluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueGluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueMuleSoft
 
How to Get Unstuck
How to Get Unstuck How to Get Unstuck
How to Get Unstuck MuleSoft
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationMuleSoft
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint PlatformMuleSoft
 
Applying UX principles and methods to APIs
Applying UX principles and methods to APIs Applying UX principles and methods to APIs
Applying UX principles and methods to APIs MuleSoft
 
Secure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseSecure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseMuleSoft
 
Gathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkGathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkMuleSoft
 
CloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsCloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsMuleSoft
 
Governing and Sharing your Integration Assets
Governing and Sharing your Integration AssetsGoverning and Sharing your Integration Assets
Governing and Sharing your Integration AssetsMuleSoft
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft
 
Object Store
Object StoreObject Store
Object StoreMuleSoft
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0MuleSoft
 
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)MuleSoft
 
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)MuleSoft
 
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)MuleSoft
 
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)MuleSoft
 
Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)MuleSoft
 
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics DashboardKnow What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics DashboardMuleSoft
 
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...MuleSoft
 

More from MuleSoft (20)

The CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationThe CIO's Guide to Digital Transformation
The CIO's Guide to Digital Transformation
 
Gluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueGluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the Glue
 
How to Get Unstuck
How to Get Unstuck How to Get Unstuck
How to Get Unstuck
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy Modernization
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint Platform
 
Applying UX principles and methods to APIs
Applying UX principles and methods to APIs Applying UX principles and methods to APIs
Applying UX principles and methods to APIs
 
Secure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseSecure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterprise
 
Gathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkGathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at Splunk
 
CloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsCloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment Options
 
Governing and Sharing your Integration Assets
Governing and Sharing your Integration AssetsGoverning and Sharing your Integration Assets
Governing and Sharing your Integration Assets
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes
 
Object Store
Object StoreObject Store
Object Store
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0
 
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
 
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
 
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
 
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
 
Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)
 
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics DashboardKnow What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
 
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
 

Recently uploaded

Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Product School
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...Sri Ambati
 

Recently uploaded (20)

Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 

Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter

  • 1. Tips and Tricks for Advanced Developers
  • 2.
  • 3. All contents © MuleSoft Inc. Objectives 3 • Single project for all APIs • Common code and resources • Automated CI/CD pipeline
  • 4. All contents © MuleSoft Inc. Fine print 4 • This is one of many possible ways – many ways to skin a mule • Many of these tools and techniques are not officially supported – roll your own • May become obsolete when new products are released
  • 5. All contents © MuleSoft Inc. Example use case 5 • ACME API • Two systems, System ONE and System TWO • Two types of resources – widget and gadget
  • 6. All contents © MuleSoft Inc. Multi-module Maven project 6 • Parent POM • Domain project • Shared resources project • Separate project for each API
  • 7. All contents © MuleSoft Inc. Domain with conditional imports 7 • Connector has the same name but different configs • Embedded ActiveMQ local, Websphere MQ on prod • No need for TLS config on dev machine
  • 8. All contents © MuleSoft Inc. Domain with conditional imports 8 Domain XML config common.local.xml common.prod.xml
  • 9. All contents © MuleSoft Inc. Separate Resources Project 9 • Common custom Java classes, mappings, XML snippets, RAML, schemas, examples • Built as a JAR • Listed as a dependency in all API implementation POMs or in a domain (and loaded by a shared CL) • Can be versioned independently
  • 10. All contents © MuleSoft Inc. Separate Resources Project - examples 10 • Custom Java classes – e.g. custom transformers • Mappings – from and to canonical data model • XML snippets – common and reusable exception strategies, flows and sub-flows, object stores • RAML, schemas, examples – system APIs may use canonical data model
  • 11. All contents © MuleSoft Inc. Dynamic parse-template 11 • Custom Java transformer • Can be used to load a file given the expression which evaluates to a file name • Just like built-in parse-template, can evaluate expressions inside the file
  • 12. All contents © MuleSoft Inc. Dynamic DataWeave mappings 12 • The flow is the same but request and response mappings are different • Can I set mapping names in the APIKit request flow and invoke the common code which calls the underlying system • MEL function dw() evaluates a DataWeave script • DataWeave script can be loaded using the dynamic parse-template transformer
  • 13. All contents © MuleSoft Inc. Bonus: Coding Style and Naming Convention 13 https://github.com/javaduke/ACME_API/tree/master/docs
  • 14. All contents © MuleSoft Inc. Show me the goodies 14 https://github.com/javaduke/ACME_API/ Apache Maven: https://maven.apache.org IntelliJ IDEA: https://www.jetbrains.com/idea/ Mule plugins for IntelliJ IDEA: - https://plugins.jetbrains.com/idea/plugin/8212-mule-esb-plugin-for-intellij - https://plugins.jetbrains.com/idea/plugin/8458-data-weave-intellij-plugin- - https://plugins.jetbrains.com/idea/plugin/8459-raml-plugin-for-intellij
  • 15. All contents © MuleSoft Inc. Don’t forget the survey 15 • Why take the survey? – Takes less than 2 minutes – We value your feedback and apply it when deciding next year’s content and speakers – Surveys = Prizes!! Earn 55 points for a chance to win $250 in cash prizes • See “Play To Win” in the Mobile App for details • Where’s my survey? – Log into the mobile app – Click “Surveys” on the Tool Bar – Find the relevant survey for this session slot
  • 18. All contents © MuleSoft Inc. Use case • The integration layer have to sync records from Salesforce to Oracle • The information is contained in three related Salesforce objects in a hierarchy and needs to be moved to three different tables in Oracle • If the records already exist in Oracle they will be updated, otherwise, inserted
  • 19. All contents © MuleSoft Inc. The first approach
  • 20. All contents © MuleSoft Inc. The first approach
  • 21. All contents © MuleSoft Inc. The first approach
  • 22. All contents © MuleSoft Inc. The issues • Hard to debug and control since we had nested batch jobs that were triggered asynchronously • Data inconsistencies arose since every Oracle operation was processed in a separate thread • Batch module spawns multiple threads so when the job had to process a lot of records memory usage increased and the runtime ran out of memory under certain scenarios • When the poll processor triggered a new batch while there was a job running caused a job overlap
  • 23. All contents © MuleSoft Inc. The new approach (Part 1) • Queue based to enable clustering and transactionality, batch is not cluster aware • Single query from Salesforce • Migrating from separate Insert/Update operations to Merge to prevent multiple calls • Transactional scope to process records in Oracle
  • 24. All contents © MuleSoft Inc. The new approach (Part 2)
  • 25. All contents © MuleSoft Inc. Lessons learned • Have small and reusable flows that are responsible of single tasks • Enable logs with the right levels depending on the scope • Avoid chatty flows • Reduce the use of local variables and try to store only simple values, not large sets of records • Load test should be done in earlier phases to assess design