Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Confidently Releasing Microservices With Consumer Driven Contracts

Confidently Releasing Microservices With Consumer Driven Contracts

Many teams working with microservices need confidence they don't break functionality when making changes. System integration tests, functional tests, and sometimes manual tests are older ways to obtain that confidence. These processes may take more than 1 day or even more if different teams or a different company own the services.

To ensure the same level of confidence and speed up delivery, we can create Contracts for integrations between consumers and providers. Contracts created by consumer services need to pass with every build going in production to guarantee the integrations between systems/services work fine. Checking these contracts in a CI/CD pipeline makes feedback loops even faster.

A Contract is a collection of agreements between a Consumer and a Provider that describes the interactions that can take place between them. Consumer Driven Contracts (CDCs) is a pattern that drives the development of the Providers from its Consumer's point of view. It is TDD for microservices.

This talk covers an end to end demo of contract testing between two microservices to show how to release microservices with confidence, get early feedback, speed up delivery, and comparison with other testing strategies.

Gopinath Langote

March 22, 2019
Tweet

More Decks by Gopinath Langote

Other Decks in Technology

Transcript

  1. Mocked User Service Not aware of other service Changes No

    Feedback Loop Trustworthy Mocked Integration Test
  2. User Service Get the contracts Assert the expectations from consumer

    Consumer Provider Mock Contract Server Account Service Provider Verification
  3. 1. JVM 2. .Net 3. Ruby 4. Go 5. JavaScript

    6. Python 7. Php 8. Swift You can implement you own https://pact.io Pact