SlideShare a Scribd company logo
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?

More Related Content

What's hot

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
BIWUG
 
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
Optimizely
 
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
Salesforce Developers
 
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
IBM Watson
 
Session 1 fall 2014
Session 1 fall 2014Session 1 fall 2014
Session 1 fall 2014
sahlinas
 
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
Nishant Kadian
 
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?
Garth Gilmour
 
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...
Pronovix
 
Microsoft CoE case studies
Microsoft CoE case studiesMicrosoft CoE case studies
Microsoft CoE case studies
Andaleeb Wajid
 
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
Optimizely
 
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
Salesforce Developers
 
Ibm Lotus Sametime 8
Ibm Lotus Sametime 8Ibm Lotus Sametime 8
Ibm Lotus Sametime 8
emkeefe
 
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...
Atlassian
 
Reconnect with eBridge: Customer webinar 2018
Reconnect with eBridge: Customer webinar 2018Reconnect with eBridge: Customer webinar 2018
Reconnect with eBridge: Customer webinar 2018
eBridge Connections
 
CoDe:U git flow
CoDe:U git flowCoDe:U git flow
CoDe:U git flow
Lars Kruse
 
Agile Nightmares
Agile NightmaresAgile Nightmares
Agile Nightmares
unbrand
 
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
Cloud Elements
 
How to productize your service
How to productize your serviceHow to productize your service
How to productize your service
Aarni Heiskanen
 
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...
Optimizely
 

What's hot (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...
 

Similar to 2019-01-8 - Consumer Driven Contracts at Codefreeze

Overcoming Objections by Ali Jani
Overcoming Objections by Ali JaniOvercoming Objections by Ali Jani
Overcoming Objections by Ali Jani
Acumatica Cloud ERP
 
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
ArpitGautam20
 
Kanban testing
Kanban testingKanban testing
Kanban testing
Cprime
 
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
ProductCamp Boston
 
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...
Carlo Longino
 
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
Ted Gies
 
Magento Live 2014 Customer Expectation Presentation
Magento Live 2014 Customer Expectation PresentationMagento Live 2014 Customer Expectation Presentation
Magento Live 2014 Customer Expectation Presentation
Brent W Peterson
 
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, ...
apidays
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementation
Terry Bunio
 
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
ClearPath, LLC
 
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
Steven Herod
 
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
Agile Testing Alliance
 
Driving Developers To Your API
Driving Developers To Your APIDriving Developers To Your API
Driving Developers To Your API
Carlo Longino
 
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
Stefan Smith
 
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
 
Agile+Course+Presentation.pdf
Agile+Course+Presentation.pdfAgile+Course+Presentation.pdf
Agile+Course+Presentation.pdf
Chandan Kumar
 
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
ETLSolutions
 
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
Anton Oosthuizen
 
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
Esanosys
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perf
Nitisak Mooltreesri
 

Similar to 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
 

Recently uploaded

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 

Recently uploaded (20)

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 

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?