GopinathLangote
Confidently Releasing Microservices
With Consumer Driven Contracts
Software Engineer
Confidently
Releasing Microservices With Consumer Driven Contracts
Confidently
Releasing
Microservices With Consumer Driven Contracts
Confidently Releasing
Microservices
With Consumer Driven Contracts
Confidently Releasing Microservices With
Consumer Driven
Contracts
Client / Consumer Server / Provider
Confidently Releasing Microservices With Consumer Driven
Contracts
Payments Team Growth Team
Problem Statement
Refactoring
Unit Tests
Mocked Integration Tests
Functional Tests
Manual Tests
Test Pyramid
Unit Test
Limited to method level
Not aware of other service
Trustworthy
Mocked
Integration
Test
Mocked User Service
Not aware of other service Changes
No Feedback Loop
Trustworthy
Mocked Integration Test
Real User Service
Time Consuming
Longer Feedback Loop
Trustworthy
Functional Test
Manual Test
Unit Tests
Contract Test
Functional
Manual Tests
Test Pyramid
Account Service
Consumer Service
Contract Test
User Service
Producer Service
Payments Team Growth Team
Consumer Contract Test
Register expectation
Request
Account Service User Service
Mock Contract Server
TEST
Response
Contract File
User Service
Get the contracts
Assert the expectations from
consumer
Consumer
Provider
Mock Contract Server
Account Service
Provider Verification
Initialize Mock Server
Setup Expectations
Running Test
Demo
Consumer Contract Test
Get the contracts
Assert the expectations from
consumer
Provider Service
Provider Verification
Provider Verification
Demo
Provider Verification
Provider State
Setup Provider State
CDC In Action
Test As Part Of Source Code
Separate Contract Test Code
Consumer Test
Cloud Storage
Contract Brokers
Contract Sharing
Contract Verification Test
External tools
Provider Verification
Against Current Build
Provider Verification In CI
Against Stable Build
Tools
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
Other Tool
janus
VCRPACTO
Convince Me
https://docs.pact.io/faq/convinceme
Resources
https://github.com/gopinath-langote/Pact-JVM-Implementation
https://pact.io
https://martinfowler.com/articles/microservice-testing/
https://www.martinfowler.com/articles/consumerDrivenContracts.html
Questions?
Thank You
GopinathLangote

Confidently releasing microservices with consumer driven contracts (1)