0

I just want to brief about what I am trying to do before asking question

I am trying to build microservices using spring boot - where in I need to use many Spring Cloud Netflix features such as Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) and Client Side Load Balancing (Ribbon) etc - I'm planning to use docker containers to deploy and manage using tools like docker compose,docker swarm (or kubernetes).

With this configuration - we have 3 microservices(let's assume ) , service A , service B and service C ,these are independent micro services developed by different developers ,assuming these developers are not in sync ,developer1 commits some changes to service A ,which might break functionality of other 2 services B and C (these are calling service A for some purpose ), but services B and C are not aware of changes made in service A . **How to efficiently handle possible situations like this ? ** - thanks in advance

Siddu H
  • 11
  • 1
  • 8
  • 1
    Simple solution: Never do breaking changes in your API. To ensure this, you can for example use consumer driven contracts. – dunni Mar 03 '17 at 06:22

1 Answers1

1

You should never break backwards compat. If changes are going to break backwards compatibility then version the service.

I have blogged about how to register and discover multiple versions of a service using Spring Cloud Netflix Eureka and Ribbon at http://tech.asimio.net/2017/03/06/Multi-version-Service-Discovery-using-Spring-Cloud-Netflix-Eureka-and-Ribbon.html.

ootero
  • 3,235
  • 2
  • 16
  • 22