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

Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
Martin Ruddy
 

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

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

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

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