API-Kompatibilität durch Consumer-Driven Contracts und CI/CD

Arne Limburg

Eine der größten Herausforderungen von Microservices ist die Weiterentwicklung von Schnittstellen. Wenn bei einer Schnittstellenänderung alle Clients mit aktualisiert werden müssen, breche ich das Prinzip der losen Kopplung. Ich muss also zunächst die alte Version weiter zur Verfügung stellen. Aber kann ich sie dann überhaupt irgendwann abschalten? Und wie stelle ich dann sicher, dass alle Clients weiterhin funktionieren? Consumer-Driven Contracts geben eine Antwort auf diese Fragen.

In einer Live-Coding-Session werde ich demonstrieren, wie über eine Continuous Deployment Pipeline in Kombination mit Consumer-driven Contracts und einem Pact Broker sichergestellt werden kann, dass auf allen Stages Services deployt werden (können), deren Schnittstellen kompatibel sind und bleiben, auch wenn einzelne Schnittstellen weiterentwickelt werden.