Take the 2-minute tour ×  We have a project where UI code will
be developed by the same team but in a different language
(Python/Django) from the services layer (REST/Java). The code
for each layer exits in different code repositories and which
can follow different release cycles. I'm trying to come up with
a process that will prevent/reduce breaking changes in the
services layer from the perspective of the UI layer.  I've
thought to write integration tests at the UI layer level that
we'll run whenever we build the UI or the services layer (we're
using Jenkins as our CI tool to build the code which is in two
Git repos) and if there are failures then something in the
services layer broke and the commit is not accepted.  Would it
also be a good idea (is it a best practice?) to have the
developer of the services layer create and maintain a client
library for the REST service that exists in the UI layer that
they will update whenever there is a breaking change in their
Service API? Conceivably, we would then have