###Consumer Driven Contracts (http://martinfowler.com/articles/consumerDrivenContracts.html)
####Como evoluir um serviço?
Um exemplo: Product Search, serviço que permite procurar produtos. Duas aplicações consomem esse serviço. Essas aplicações utilizam [XSD] (https://en.wikipedia.org/wiki/XML_Schema_(W3C)) para validar a resposta do serviço antes de realizar qualquer processamento. Um terceiro consumidor precisa de um novo campo na resposta do serviço já existente. Duas abordagens para implementar essa alteração:
-
Provedor altera o esquema e os consumidores terão que atualizar a cópia dos seus esquemas para validar corretamente a resposta do serviço, necessitando mudanças de todos os envolvidos (provedor e os três consumidores).
-
Adicionar uma nova operação ao serviço, com um novo esquema. O custo das mudanças fica todo do lado do provedor, mas o serviço irá ficar mais complexo e difícil de manter.