Monoliths are dead. Or, at the very least, they are quickly going the way of the dinosaur. Modern applications are built out of loosely coupled, independent components (i.e., microservices) that communicate with one another through standardized protocols and message formats (HTTP, REST, ...).
While this is a blessing for software development, as it enables quick deployments and parallel development, among other things, it does pose some additional challenges in terms of integration and E2E testing. At all times, you want to be informed about whether all of the components and services that make up your application can still communicate with one another. Setting up large-scale test environments for all of these components, either using "the real thing" or stubs, can quickly become a Herculean task.
Contract testing is an approach that is meant to address these challenges of large-scale integration and E2E testing in distributed environments. It is not a new technique it has been around for several years now, but unfortunately, there is a lack of good introductions, examples, and use cases that clearly show the added value of contract testing, and how it can help speed up integration testing.
This workshop is meant to address that. Bas will be using Pact as a contract testing tool. Speaker will be using its Java bindings but will offer exercises and examples for other languages as well. After all, it's about the principles and patterns, not about the tools and tricks.