Spring I/O

Sessions

Riccardo Lippolis

Jeroen Bruinink

Consumer driven contracts in a polyglot world

Riccardo Lippolis / Jeroen Bruinink - JDriven

Have you ever been in the situation where your microservice stopped working, because one of the services it consumes changed? Or did you ever want to change a service but found it difficult to find out which consumers it has? We ran into these problems numerous times (usually head first) after breaking up a monolithic application into microservices. Where once the compiler would complain or our unit tests would fail, everything would now seem fine at first. Problems would only become visible after deploying to the integration environment, or worse: in production!

In this talk, we will explain how we mitigate these problems using Spring Cloud Contract to specify and test the interface between our Spring Boot microservices. Furthermore, with the new Polyglot support, we are now able to extend the specifications to include our non-JVM services and frontend applications.

The presented code examples will be shared on GitHub.