There are lots of challenges in building complex distributed systems. One of the caveats that help to move forward with iterative features delivery is proper organized testing of the entire system.
With the contract testing approach, we can define contracts between consumer and producer services. These contracts allow to generate tests on the producer side, create Wiremock-based stubs and use them on the consumer side for verifying API compatibility.
Contract testings allow getting fast feedback in case of API became incompatible for downstream services. This is a perfect initial layer in CI pipeline before bootstrapping and running resource expensive end-to-end infrastructure for verification.
With demo sessions, we will take a look at these features and discuss how to use them in Spring ecosystem and other languages/frameworks.