SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Consumer driven
contracts
The evolution of your APIs
supported by tests
wemanity
@nelisboucke 

@matteo_pierro
A typical situation
• Several teams in a company need to integrate an API

• New functionality
ProviderConsumer
Consumer
Contract
…
How does the cooperation go?
Provider driven
• Provider builds API as they see fit

• Often just expose all info

• Consumer starts when provider is ready
Provider
Contract
Consumer
Consumer
…
Challenges for in our situation
• Often too complex to achieve normal flows
https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/STS120LaunchHiRes-edit1.jpg/1024px-STS120LaunchHiRes-edit1.jpg
Challenges for in our situation
• Ping-pong to make it work

• Never perfect fit for consumers

• Lots of waiting, bugs, interrupts to test, …
Challenges for in our situation
• Late feedback from end users
Good for
• API is (part of) the product

• Lots of (unknown) consumers

• many opportunities to collect feedback

• Budget for multiple iterations on the API
Contract driven
• Meeting to agree on the complete API in advance

• Build in parallel, use mock or stub

• Integrate at the end
Provider
Contract
Consumer
Consumer
…
Challenges in our situation
• Analysis paralysis + Contract negotiation over cooperation!
Challenges in our situation
• Most of the time details where not agreed on, so still mismatches
Challenges in our situation
Challenges in our situation
• Integration near deadline
Good for
• When you know what you need

• e.g integration with existing system and datamodel

• Working with a (external) party where you want to protect yourself

• At least it is clear what to expect
Consumer driven
• Short meeting to agree on basic structure of API

• Consumer iteratively builds + shares expectations

• Provider iteratively builds + verifies with expectations
Provider
Contract
Consumer
Consumer
…
Why is it good in our situation?
• You do not exactly know what you need

• Limited and known consumers

• You want to integrate fast

• Fast feedback

• Reduce integration risk
Challenges
• Tools needed to make it easier
Challenges
• Provider needs to adapt WoW to incorporate consumer changes
Challenges
• Consumer needs to work test driven and share expectations
Who are we?
Nelis Boucké Matteo Pierro
@nelisboucke 



@matteo_pierro
Overview of Pact way of working
Topics to discuss?
• VS swagger and wire mock?

• What if something goes wrong?

• Demonstrate how works with CI in this case

• Versioning?

• Challenges on implementing this in your team(s)?

• Way of working a provider side?

• Incident?

Contenu connexe

Tendances

Microsoft CoE case studies
Microsoft CoE case studiesMicrosoft CoE case studies
Microsoft CoE case studies
Andaleeb Wajid
 
Ibm Lotus Sametime 8
Ibm Lotus Sametime 8Ibm Lotus Sametime 8
Ibm Lotus Sametime 8
emkeefe
 

Tendances (19)

Matthias einig transforming share point farm solutions to the app model
Matthias einig   transforming share point farm solutions to the app modelMatthias einig   transforming share point farm solutions to the app model
Matthias einig transforming share point farm solutions to the app model
 
AMC Networks Experiments Faster on the Server Side
AMC Networks Experiments Faster on the Server SideAMC Networks Experiments Faster on the Server Side
AMC Networks Experiments Faster on the Server Side
 
Behaviour Driven Development (BDD) With Apex on Force.com
Behaviour Driven Development (BDD) With Apex on Force.comBehaviour Driven Development (BDD) With Apex on Force.com
Behaviour Driven Development (BDD) With Apex on Force.com
 
Building with Watson - Social Media Monitoring with Watson APIs
Building with Watson - Social Media Monitoring with Watson APIsBuilding with Watson - Social Media Monitoring with Watson APIs
Building with Watson - Social Media Monitoring with Watson APIs
 
Session 1 fall 2014
Session 1 fall 2014Session 1 fall 2014
Session 1 fall 2014
 
5 Tips To Choose A Good QuickBooks Hosting Provider
5 Tips To Choose A Good QuickBooks Hosting Provider5 Tips To Choose A Good QuickBooks Hosting Provider
5 Tips To Choose A Good QuickBooks Hosting Provider
 
Java 8 - Gateway Drug or End of Line?
Java 8 - Gateway Drug or End of Line?Java 8 - Gateway Drug or End of Line?
Java 8 - Gateway Drug or End of Line?
 
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
 
Microsoft CoE case studies
Microsoft CoE case studiesMicrosoft CoE case studies
Microsoft CoE case studies
 
Shipping to Learn and Accelerate Growth with GitHub
Shipping to Learn and Accelerate Growth with GitHubShipping to Learn and Accelerate Growth with GitHub
Shipping to Learn and Accelerate Growth with GitHub
 
Shorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for ApexShorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for Apex
 
Ibm Lotus Sametime 8
Ibm Lotus Sametime 8Ibm Lotus Sametime 8
Ibm Lotus Sametime 8
 
Not All Heroes Wear Capes: Skills and Tools Helpful in Becoming a Support Sup...
Not All Heroes Wear Capes: Skills and Tools Helpful in Becoming a Support Sup...Not All Heroes Wear Capes: Skills and Tools Helpful in Becoming a Support Sup...
Not All Heroes Wear Capes: Skills and Tools Helpful in Becoming a Support Sup...
 
Reconnect with eBridge: Customer webinar 2018
Reconnect with eBridge: Customer webinar 2018Reconnect with eBridge: Customer webinar 2018
Reconnect with eBridge: Customer webinar 2018
 
CoDe:U git flow
CoDe:U git flowCoDe:U git flow
CoDe:U git flow
 
Agile Nightmares
Agile NightmaresAgile Nightmares
Agile Nightmares
 
Lean Product Development for Startups- Denver Startup Week
Lean Product Development for Startups- Denver Startup Week Lean Product Development for Startups- Denver Startup Week
Lean Product Development for Startups- Denver Startup Week
 
How to productize your service
How to productize your serviceHow to productize your service
How to productize your service
 
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
 

Similaire à 2019-01-8 - Consumer Driven Contracts at Codefreeze

Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementation
Terry Bunio
 
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Zivtech, LLC
 

Similaire à 2019-01-8 - Consumer Driven Contracts at Codefreeze (20)

Overcoming Objections by Ali Jani
Overcoming Objections by Ali JaniOvercoming Objections by Ali Jani
Overcoming Objections by Ali Jani
 
No code the next big thing in supply chain technology
No code the next big thing in supply chain technologyNo code the next big thing in supply chain technology
No code the next big thing in supply chain technology
 
Kanban testing
Kanban testingKanban testing
Kanban testing
 
158 - Product Management for Enterprise-Grade platforms
158 - Product Management for Enterprise-Grade platforms 158 - Product Management for Enterprise-Grade platforms
158 - Product Management for Enterprise-Grade platforms
 
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
 
CSUN 2020 VPATs: For Business or Measure
CSUN 2020 VPATs: For Business or MeasureCSUN 2020 VPATs: For Business or Measure
CSUN 2020 VPATs: For Business or Measure
 
Magento Live 2014 Customer Expectation Presentation
Magento Live 2014 Customer Expectation PresentationMagento Live 2014 Customer Expectation Presentation
Magento Live 2014 Customer Expectation Presentation
 
APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...
APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...
APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementation
 
No Drama: Selecting the Right CMS for You
No Drama: Selecting the Right CMS for YouNo Drama: Selecting the Right CMS for You
No Drama: Selecting the Right CMS for You
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh Varadharajan
 
Driving Developers To Your API
Driving Developers To Your APIDriving Developers To Your API
Driving Developers To Your API
 
Wading through treacle? Escape the integration syrup with contract tests
Wading through treacle? Escape the integration syrup with contract testsWading through treacle? Escape the integration syrup with contract tests
Wading through treacle? Escape the integration syrup with contract tests
 
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
 
Agile+Course+Presentation.pdf
Agile+Course+Presentation.pdfAgile+Course+Presentation.pdf
Agile+Course+Presentation.pdf
 
How to create a successful proof of concept
How to create a successful proof of conceptHow to create a successful proof of concept
How to create a successful proof of concept
 
Cheapest User Stories - The Achilles Heel of Agile
Cheapest User Stories - The Achilles Heel of Agile Cheapest User Stories - The Achilles Heel of Agile
Cheapest User Stories - The Achilles Heel of Agile
 
What Your Marketing Automation Vendor Won't Ever Tell You
What Your Marketing Automation Vendor Won't Ever Tell YouWhat Your Marketing Automation Vendor Won't Ever Tell You
What Your Marketing Automation Vendor Won't Ever Tell You
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perf
 

Dernier

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
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
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

2019-01-8 - Consumer Driven Contracts at Codefreeze

  • 1. Consumer driven contracts The evolution of your APIs supported by tests wemanity @nelisboucke @matteo_pierro
  • 2. A typical situation • Several teams in a company need to integrate an API • New functionality ProviderConsumer Consumer Contract …
  • 3. How does the cooperation go?
  • 4. Provider driven • Provider builds API as they see fit • Often just expose all info • Consumer starts when provider is ready Provider Contract Consumer Consumer …
  • 5. Challenges for in our situation • Often too complex to achieve normal flows https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/STS120LaunchHiRes-edit1.jpg/1024px-STS120LaunchHiRes-edit1.jpg
  • 6. Challenges for in our situation • Ping-pong to make it work • Never perfect fit for consumers • Lots of waiting, bugs, interrupts to test, …
  • 7. Challenges for in our situation • Late feedback from end users
  • 8. Good for • API is (part of) the product • Lots of (unknown) consumers • many opportunities to collect feedback • Budget for multiple iterations on the API
  • 9. Contract driven • Meeting to agree on the complete API in advance • Build in parallel, use mock or stub • Integrate at the end Provider Contract Consumer Consumer …
  • 10. Challenges in our situation • Analysis paralysis + Contract negotiation over cooperation!
  • 11. Challenges in our situation • Most of the time details where not agreed on, so still mismatches
  • 12. Challenges in our situation
  • 13. Challenges in our situation • Integration near deadline
  • 14. Good for • When you know what you need • e.g integration with existing system and datamodel • Working with a (external) party where you want to protect yourself • At least it is clear what to expect
  • 15. Consumer driven • Short meeting to agree on basic structure of API • Consumer iteratively builds + shares expectations • Provider iteratively builds + verifies with expectations Provider Contract Consumer Consumer …
  • 16. Why is it good in our situation? • You do not exactly know what you need • Limited and known consumers • You want to integrate fast • Fast feedback • Reduce integration risk
  • 17. Challenges • Tools needed to make it easier
  • 18. Challenges • Provider needs to adapt WoW to incorporate consumer changes
  • 19. Challenges • Consumer needs to work test driven and share expectations
  • 20. Who are we? Nelis Boucké Matteo Pierro @nelisboucke @matteo_pierro
  • 21. Overview of Pact way of working
  • 22.
  • 23.
  • 24.
  • 25. Topics to discuss? • VS swagger and wire mock? • What if something goes wrong? • Demonstrate how works with CI in this case • Versioning? • Challenges on implementing this in your team(s)? • Way of working a provider side? • Incident?