SlideShare a Scribd company logo
1 of 28
Download to read offline
Integration Strategies & Best Practices
Kick starting on Integrations, here is what you need to know
Personal
Questions
• How many $ did you spend today
• How many APIs did you use
About meRohan Rasane
Integrations
Architect -
ServiceNow
Integrations
Architect -
ServiceNow
Agenda
• About a Integration platform
• Buying/building guide
• Objections of an integration platform
• How to kick start
• Practices
• Bulkhead and Circuit-breaker in depths
About your
Integration
Platform
Don’t have an
integration
platform yet
You own one,
but it is
unorganized
and there is
no control
Third party
apps are very
unresponsive,
reliability is at
stake
Dev to Deploy
time is huge
Where do you fit ?
Batch Processing
Loose coupling
Micro services & Reuse
Governance
Analytics
Security
Integrations
Platform –
Features
What features should the platform provide
Points to consider while buying or
building an integration platform
Integrations
Platform –
Key objectives
Reliable
Available
Intuitive APIs
Least manual interventions
Consumer Friendly errors & exceptions
Ease of Monitoring & Reporting
Enable Self Service
Low maintenance costsWhat are the customers confidence factors
that the platform should abide to get a
great NPS J
API or integration platform users = customers
Integration -
Resiliency
Patterns
Timeouts
Circuit breakers
Bulkheads
HeartBeat
Queues - Asynchronous Communication
Retries
Idempotency
These are the platform’s pillars that help
detect failures and recover quickly
#design for failuresNetflix OSS
Design Questions
• Is there an existing integration, if yes, how
does it work and what are the problems
• What data needs to be integrated
• Who are the users (systems or
applications)
• Transaction count: daily-monthly-yearly.
• What kind of orchestrations are required,
if any
• Personas and use-cases
• Manual tasks
• Fallbacks
• Future scaling needs
• Data security or confidentiality
Ask these questions when there is a
need of integrations
#non-technical #birds-eye view
Sample
Questionnaire
outcome
#drawingHelps
Check this research
Some more questions
• Data
• Data transfer format
• Rest (json/xml), graph, SOAP, File, Email, Queue,
manual feed
• Single / multiple payload
• Synchronous / Asynchronous responses
• Performance
• Counts of requests
• Size of the data payload
• What is the system max parallel request limit
• System transactions per second
• Response times
• System resilience
• Security
• Service authentication
• Is the data confidential/federal
• Error
• How to react to errors, when & how to retry
• Analytics and Reporting
#technical #Worm’s-eye view
Ask these questions to the 3rd party
application technical team and analysts
Object level considerations - decisions
• IDs or GUIDs
• Rule of thumb - In Hub-Spoke integration model, the spoke systems should use the id/ GUID created by the master. This reduces a lot
of maintenance problems that occur otherwise.
• Date-Time
• These should be in GMT always and the consuming systems or the client should convert them as needed. Use standard date time
format- ISO 8601
• APIs
• Export self-explanatory API objects
• Huge flat structures should be always categorized in groups or nested objects, This makes the object look like a DOM/tree.
• Version APIs
• Paginate bulk web service calls. This solves performance issues.
• Data Mapping
• Define the role of the middleware. There are many misconceptions about what a middleware should do, correct those.
• Outline roles of each system, so as to make sure there is a unified mapping strategy.
• Avoid patch work mappings like using contains/ substring based decision making on strings.
#technical #discussions #before the design
• Hardcode only if there is a technical limitation.
• Always remember that complex data mapping often leads to a lot of serialization and de-serialization, in turn causing performance
bottlenecks.
• Orchestration
• Answer the following questions. These help the consumers to know what is happening under the water
• When to orchestrate
• How to report the results back to the consuming systems. These updates could be in a form of status changes which should be
reported
• What happens when a part of a complete transaction set fails. Is the transaction type - ACID and what is the rollback policy.
• Retries
• Discuss and decide if the transaction should be retried and under what conditions. Usually the retry logic should be the same for a
complete integration unless there is an exception
• Error Reporting
• This is a very crucial aspect and a good integration is one which is designed for failures.
• List all the known failures based on integration type and decide the action to take. Some failures might need immediate attention while
some can be retried for a certain period.
Object level considerations - decisions
#technical #discussions #before the design
Analysis Design Develop
Test &
Performance
Manage Checkups
Important Phases in Integration
Building an integration is same as building a car - invest more on the design, so as worry less on the maintenance
• Analysis
o Understand the roadmap of the integrating app
o Identify Primary and secondary needs
• Design
o Reusable Patterns
• FTP
• Schedulers
• PUB-SUB
• Errors
o Always think of performance
• Throughput
• Latency
Analysis
Design
Develop
Test
Perform
ance
Manage
&
checkups
Best Practices
o Secure
o Reliable
o Flexible
o Error handling
o Entity and relationship
o Data exchange patterns
• Synchronous vs asynchronous
o Data in Chunks
• Paginate
o API data transfer should be in JSON. XML only if the
consumer has a limitation.
Best Practices Analysis
Design
Develop
Test
Perform
ance
Manage
&
checkups
• Develop
o Handle all known cases
o Mock the service first – consumers will not be surprised later
o Write unit tests
o Usable
• Example - Document usage on the api console, avoid multiple
documents
o Follow Http web service guidelines:
• POST - create a record or resource
• PUT – update a record or resource
• GET - read a record or resource(single or multiple)
• DELETE - remove a record or resource(single or multiple)
• A Response should be simple and meaningful, avoid
duplicate responses
• Http status 200 OK is more than enough for a consumer to know that
is request was successful
Best Practices Analysis
Design
Develop
Test
Perform
ance
Manage
&
checkups418 I'm a teapot
o Coding conventions
• Java for internal code
• Restful APIs
§ Naming conventions
o Redesign if necessary
o Ensure loose coupling for reusability
o Code Reviews
• Test & Performance
o Automate
o Load test with JMeter, Nodejs Simulators
Best Practices Analysis
Design
Develop
Test
Perform
ance
Manage
&
checkups
• Manage
oIdentify Risks – Impacting Systems
oHandle changes with versioning
• Regular checkups and adjustments
oNode Capacity
oFrequency
Best Practices Analysis
Design
Develop
Test
Perform
ance
Manage
&
checkups
Circuit Breaker & BulkHead
&
How we use it
Circuits
Hosting AppsConsumers
Closed
Open
Half Open
Open
Attributes
• IdentifierName BestPhotoCompanyCktBreaker
• List of exception that would trip the circuit
Exceptions
java.util.concurrent.TimeoutException,
java.net.SocketException
• Window of time in ms to count the requestsRolling Window 100
• CountThreshold 4
• Ms time to close the circuit againTrip Timeout 7000
Response Timeout
Trip Timeout 7000
ms
Rolling Window
100 ms
Timed out requests
Circuit Open - All requests
are being rejected
Circuit
breaker
in action
Response Timeout
Rolling Window
100 ms
Timed out requests
Boat Hull
Bulkheads
Boat Hull
Thread
Pool
Executor
1
4
2
3
5
6
7
8
Proxy
Hosting
App
9
12
10
11
1. Send request to the ThreadPool if there
are any free threads
2. Send request to the Queue is there no
threads
3. Reject Any new requests
Thread Pool Executor
Links & Resources
• Netflix Open Source Software Center : https://netflix.github.io/
• How drawing can help : https://lifehacker.com/how-drawing-can-help-improve-your-memory-according-to-1772702367
• Rest : https://en.wikipedia.org/wiki/Representational_state_transfer
• Rest APIs : http://www.restapitutorial.com/index.html
• Http Methods : http://www.restapitutorial.com/lessons/httpmethods.html
• Https Status Codes : http://www.restapitutorial.com/httpstatuscodes.html
• JSON : http://www.json.org/
• Micro services : http://microservices.io/patterns/microservices.html
• API Led connectivity : https://www.mulesoft.com/sites/default/files/resource-assets/API-led-connectivity-new-soa-updated.pdf
• 418 – I’m a teapot : https://tools.ietf.org/html/rfc2324
• ISO 8601 - https://en.wikipedia.org/wiki/ISO_8601

More Related Content

What's hot

Presentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsPresentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsKovair
 
Load Testing Best Practices
Load Testing Best PracticesLoad Testing Best Practices
Load Testing Best PracticesApica
 
Performance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsAlexander Podelko
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation StrategyMartin Ruddy
 
Ncerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmNcerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmssmarar
 
Srivalli Aparna - The Blueprints to Success
Srivalli Aparna - The Blueprints to SuccessSrivalli Aparna - The Blueprints to Success
Srivalli Aparna - The Blueprints to SuccessNeotys_Partner
 
Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...Paul Brebner
 
Building a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with KnimeBuilding a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with KnimeKnoldus Inc.
 
Application Performance Monitoring
Application Performance MonitoringApplication Performance Monitoring
Application Performance MonitoringOlivier Gérardin
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing Yogesh Deshmukh
 
Don’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation StrategyDon’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation StrategyJosiah Renaudin
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
 
Software testing performance testing
Software testing  performance testingSoftware testing  performance testing
Software testing performance testingGaneshKumarKanthiah
 
Neotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree NalwadadNeotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree NalwadadNeotys_Partner
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance TestingSWAAM Tech
 
Why Test Automation Fails
Why Test Automation FailsWhy Test Automation Fails
Why Test Automation FailsRanorex
 
What is Performance Testing?
What is Performance Testing?What is Performance Testing?
What is Performance Testing?QA InfoTech
 
Performance testing
Performance testingPerformance testing
Performance testingJyoti Babbar
 

What's hot (20)

Presentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsPresentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOps
 
Load Testing Best Practices
Load Testing Best PracticesLoad Testing Best Practices
Load Testing Best Practices
 
Performance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged Applications
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
 
Ncerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmNcerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssm
 
Srivalli Aparna - The Blueprints to Success
Srivalli Aparna - The Blueprints to SuccessSrivalli Aparna - The Blueprints to Success
Srivalli Aparna - The Blueprints to Success
 
Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...
 
Building a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with KnimeBuilding a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with Knime
 
Application Performance Monitoring
Application Performance MonitoringApplication Performance Monitoring
Application Performance Monitoring
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Don’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation StrategyDon’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Software testing performance testing
Software testing  performance testingSoftware testing  performance testing
Software testing performance testing
 
Neotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree NalwadadNeotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree Nalwadad
 
Performance Testing Overview
Performance Testing OverviewPerformance Testing Overview
Performance Testing Overview
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
 
Why Test Automation Fails
Why Test Automation FailsWhy Test Automation Fails
Why Test Automation Fails
 
What is Performance Testing?
What is Performance Testing?What is Performance Testing?
What is Performance Testing?
 
Performance testing
Performance testingPerformance testing
Performance testing
 

Similar to Integration strategies best practices- Mulesoft meetup April 2018

SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!Richard Robinson
 
Patching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudPatching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudDatavail
 
Improving The Quality of Existing Software
Improving The Quality of Existing SoftwareImproving The Quality of Existing Software
Improving The Quality of Existing SoftwareSteven Smith
 
Mistakes we make_and_howto_avoid_them_v0.12
Mistakes we make_and_howto_avoid_them_v0.12Mistakes we make_and_howto_avoid_them_v0.12
Mistakes we make_and_howto_avoid_them_v0.12Trevor Warren
 
How To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareHow To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareErika Barron
 
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...AppDynamics
 
Top 5 Java Performance Metrics, Tips & Tricks
Top 5 Java Performance Metrics, Tips & TricksTop 5 Java Performance Metrics, Tips & Tricks
Top 5 Java Performance Metrics, Tips & TricksAppDynamics
 
Testing in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareTesting in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareJosiah Renaudin
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Katherine Golovinova
 
Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017Chris Kernaghan
 
DevOps Toolbox: Application monitoring and insights
DevOps Toolbox: Application monitoring and insightsDevOps Toolbox: Application monitoring and insights
DevOps Toolbox: Application monitoring and insightssriram_rajan
 
Webinar: Accelerate Business Automation with APPSeCONNECT iPaaS
Webinar: Accelerate Business Automation with APPSeCONNECT iPaaSWebinar: Accelerate Business Automation with APPSeCONNECT iPaaS
Webinar: Accelerate Business Automation with APPSeCONNECT iPaaSAPPSeCONNECT
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignSmall is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignGeorgina Tilby
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
 
Change management in hybrid landscapes
Change management in hybrid landscapesChange management in hybrid landscapes
Change management in hybrid landscapesChris Kernaghan
 
Lifecycle of a Data Science Project
Lifecycle of a Data Science ProjectLifecycle of a Data Science Project
Lifecycle of a Data Science ProjectDigital Vidya
 
EDI Best Practices
EDI Best PracticesEDI Best Practices
EDI Best PracticesZach Gardner
 

Similar to Integration strategies best practices- Mulesoft meetup April 2018 (20)

SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
 
Patching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudPatching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP Cloud
 
Improving The Quality of Existing Software
Improving The Quality of Existing SoftwareImproving The Quality of Existing Software
Improving The Quality of Existing Software
 
Mistakes we make_and_howto_avoid_them_v0.12
Mistakes we make_and_howto_avoid_them_v0.12Mistakes we make_and_howto_avoid_them_v0.12
Mistakes we make_and_howto_avoid_them_v0.12
 
How To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareHow To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty Software
 
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
 
Top 5 Java Performance Metrics, Tips & Tricks
Top 5 Java Performance Metrics, Tips & TricksTop 5 Java Performance Metrics, Tips & Tricks
Top 5 Java Performance Metrics, Tips & Tricks
 
Testing in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareTesting in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf Software
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017
 
DevOps Toolbox: Application monitoring and insights
DevOps Toolbox: Application monitoring and insightsDevOps Toolbox: Application monitoring and insights
DevOps Toolbox: Application monitoring and insights
 
Webinar: Accelerate Business Automation with APPSeCONNECT iPaaS
Webinar: Accelerate Business Automation with APPSeCONNECT iPaaSWebinar: Accelerate Business Automation with APPSeCONNECT iPaaS
Webinar: Accelerate Business Automation with APPSeCONNECT iPaaS
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignSmall is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case Design
 
Neev Load Testing Services
Neev Load Testing ServicesNeev Load Testing Services
Neev Load Testing Services
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 
Change management in hybrid landscapes
Change management in hybrid landscapesChange management in hybrid landscapes
Change management in hybrid landscapes
 
Training - What is Performance ?
Training  - What is Performance ?Training  - What is Performance ?
Training - What is Performance ?
 
Lifecycle of a Data Science Project
Lifecycle of a Data Science ProjectLifecycle of a Data Science Project
Lifecycle of a Data Science Project
 
EDI Best Practices
EDI Best PracticesEDI Best Practices
EDI Best Practices
 

Recently uploaded

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Recently uploaded (20)

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 

Integration strategies best practices- Mulesoft meetup April 2018

  • 1. Integration Strategies & Best Practices Kick starting on Integrations, here is what you need to know
  • 2. Personal Questions • How many $ did you spend today • How many APIs did you use
  • 3. About meRohan Rasane Integrations Architect - ServiceNow Integrations Architect - ServiceNow
  • 4. Agenda • About a Integration platform • Buying/building guide • Objections of an integration platform • How to kick start • Practices • Bulkhead and Circuit-breaker in depths
  • 5. About your Integration Platform Don’t have an integration platform yet You own one, but it is unorganized and there is no control Third party apps are very unresponsive, reliability is at stake Dev to Deploy time is huge Where do you fit ?
  • 6. Batch Processing Loose coupling Micro services & Reuse Governance Analytics Security Integrations Platform – Features What features should the platform provide Points to consider while buying or building an integration platform
  • 7. Integrations Platform – Key objectives Reliable Available Intuitive APIs Least manual interventions Consumer Friendly errors & exceptions Ease of Monitoring & Reporting Enable Self Service Low maintenance costsWhat are the customers confidence factors that the platform should abide to get a great NPS J API or integration platform users = customers
  • 8. Integration - Resiliency Patterns Timeouts Circuit breakers Bulkheads HeartBeat Queues - Asynchronous Communication Retries Idempotency These are the platform’s pillars that help detect failures and recover quickly #design for failuresNetflix OSS
  • 9. Design Questions • Is there an existing integration, if yes, how does it work and what are the problems • What data needs to be integrated • Who are the users (systems or applications) • Transaction count: daily-monthly-yearly. • What kind of orchestrations are required, if any • Personas and use-cases • Manual tasks • Fallbacks • Future scaling needs • Data security or confidentiality Ask these questions when there is a need of integrations #non-technical #birds-eye view
  • 11. Some more questions • Data • Data transfer format • Rest (json/xml), graph, SOAP, File, Email, Queue, manual feed • Single / multiple payload • Synchronous / Asynchronous responses • Performance • Counts of requests • Size of the data payload • What is the system max parallel request limit • System transactions per second • Response times • System resilience • Security • Service authentication • Is the data confidential/federal • Error • How to react to errors, when & how to retry • Analytics and Reporting #technical #Worm’s-eye view Ask these questions to the 3rd party application technical team and analysts
  • 12. Object level considerations - decisions • IDs or GUIDs • Rule of thumb - In Hub-Spoke integration model, the spoke systems should use the id/ GUID created by the master. This reduces a lot of maintenance problems that occur otherwise. • Date-Time • These should be in GMT always and the consuming systems or the client should convert them as needed. Use standard date time format- ISO 8601 • APIs • Export self-explanatory API objects • Huge flat structures should be always categorized in groups or nested objects, This makes the object look like a DOM/tree. • Version APIs • Paginate bulk web service calls. This solves performance issues. • Data Mapping • Define the role of the middleware. There are many misconceptions about what a middleware should do, correct those. • Outline roles of each system, so as to make sure there is a unified mapping strategy. • Avoid patch work mappings like using contains/ substring based decision making on strings. #technical #discussions #before the design
  • 13. • Hardcode only if there is a technical limitation. • Always remember that complex data mapping often leads to a lot of serialization and de-serialization, in turn causing performance bottlenecks. • Orchestration • Answer the following questions. These help the consumers to know what is happening under the water • When to orchestrate • How to report the results back to the consuming systems. These updates could be in a form of status changes which should be reported • What happens when a part of a complete transaction set fails. Is the transaction type - ACID and what is the rollback policy. • Retries • Discuss and decide if the transaction should be retried and under what conditions. Usually the retry logic should be the same for a complete integration unless there is an exception • Error Reporting • This is a very crucial aspect and a good integration is one which is designed for failures. • List all the known failures based on integration type and decide the action to take. Some failures might need immediate attention while some can be retried for a certain period. Object level considerations - decisions #technical #discussions #before the design
  • 14. Analysis Design Develop Test & Performance Manage Checkups Important Phases in Integration Building an integration is same as building a car - invest more on the design, so as worry less on the maintenance
  • 15. • Analysis o Understand the roadmap of the integrating app o Identify Primary and secondary needs • Design o Reusable Patterns • FTP • Schedulers • PUB-SUB • Errors o Always think of performance • Throughput • Latency Analysis Design Develop Test Perform ance Manage & checkups Best Practices
  • 16. o Secure o Reliable o Flexible o Error handling o Entity and relationship o Data exchange patterns • Synchronous vs asynchronous o Data in Chunks • Paginate o API data transfer should be in JSON. XML only if the consumer has a limitation. Best Practices Analysis Design Develop Test Perform ance Manage & checkups
  • 17. • Develop o Handle all known cases o Mock the service first – consumers will not be surprised later o Write unit tests o Usable • Example - Document usage on the api console, avoid multiple documents o Follow Http web service guidelines: • POST - create a record or resource • PUT – update a record or resource • GET - read a record or resource(single or multiple) • DELETE - remove a record or resource(single or multiple) • A Response should be simple and meaningful, avoid duplicate responses • Http status 200 OK is more than enough for a consumer to know that is request was successful Best Practices Analysis Design Develop Test Perform ance Manage & checkups418 I'm a teapot
  • 18. o Coding conventions • Java for internal code • Restful APIs § Naming conventions o Redesign if necessary o Ensure loose coupling for reusability o Code Reviews • Test & Performance o Automate o Load test with JMeter, Nodejs Simulators Best Practices Analysis Design Develop Test Perform ance Manage & checkups
  • 19. • Manage oIdentify Risks – Impacting Systems oHandle changes with versioning • Regular checkups and adjustments oNode Capacity oFrequency Best Practices Analysis Design Develop Test Perform ance Manage & checkups
  • 20. Circuit Breaker & BulkHead & How we use it
  • 22. Attributes • IdentifierName BestPhotoCompanyCktBreaker • List of exception that would trip the circuit Exceptions java.util.concurrent.TimeoutException, java.net.SocketException • Window of time in ms to count the requestsRolling Window 100 • CountThreshold 4 • Ms time to close the circuit againTrip Timeout 7000
  • 23. Response Timeout Trip Timeout 7000 ms Rolling Window 100 ms Timed out requests Circuit Open - All requests are being rejected Circuit breaker in action
  • 24. Response Timeout Rolling Window 100 ms Timed out requests
  • 27. Thread Pool Executor 1 4 2 3 5 6 7 8 Proxy Hosting App 9 12 10 11 1. Send request to the ThreadPool if there are any free threads 2. Send request to the Queue is there no threads 3. Reject Any new requests Thread Pool Executor
  • 28. Links & Resources • Netflix Open Source Software Center : https://netflix.github.io/ • How drawing can help : https://lifehacker.com/how-drawing-can-help-improve-your-memory-according-to-1772702367 • Rest : https://en.wikipedia.org/wiki/Representational_state_transfer • Rest APIs : http://www.restapitutorial.com/index.html • Http Methods : http://www.restapitutorial.com/lessons/httpmethods.html • Https Status Codes : http://www.restapitutorial.com/httpstatuscodes.html • JSON : http://www.json.org/ • Micro services : http://microservices.io/patterns/microservices.html • API Led connectivity : https://www.mulesoft.com/sites/default/files/resource-assets/API-led-connectivity-new-soa-updated.pdf • 418 – I’m a teapot : https://tools.ietf.org/html/rfc2324 • ISO 8601 - https://en.wikipedia.org/wiki/ISO_8601