January 20, 2020

293 words 2 mins read

Consumer-driven contract testing with Pact and Docker

Consumer-driven contract testing with Pact and Docker

Harry Winser explains how to leverage consumer-driven contracts to achieve fully independent releases of microservices across teams and how to handle a service rollback while still serving over 47 million requests a day. Harry also demonstrates how to use the Pact framework to continuously deliver services that depend on one another and Docker to make developer testing easier.

Talk Title Consumer-driven contract testing with Pact and Docker
Speakers Harry Winser (Rightmove)
Conference O’Reilly Velocity Conference
Conf Tag Build Resilient Distributed Systems
Location London, United Kingdom
Date October 18-20, 2017
URL Talk Page
Slides Talk Slides
Video

Continuous delivery of microservices is hard. Instead of one monolithic application, there are now a plethora of applications all talking via defined API calls. But how does a team ensure that a change to service A’s API won’t affect service B’s consumption of A’s API? What about versioning APIs? What happens if service A removes a field without service B knowing about it? A consumer-driven contract (CDC), popularized by Martin Fowler, is a way for a consuming service to define what it expects as a response from a providing service when calling the provider’s API. One of the most prevalent implementations of CDCs is Pact. Originally created by Realestate.com.au, Pact provides a framework for CDCs. By adding Pact to a delivery pipeline, a team can automate the testing between two services to ensure that they can communicate when released. Harry Winser explains how to leverage consumer-driven contracts to achieve fully independent releases of microservices across teams and how to handle a service rollback while still serving over 47 million requests a day. Harry also demonstrates how to use the Pact framework to continuously deliver services that depend on one another and Docker to make developer testing easier.

comments powered by Disqus