With Microservices hosted remotely, it is inefficient to instantiate a Microservice instance unless and until they are requested for by the client. During design/development time, this demands for a substitute object for the client to integrate with. Also, with cloud offering the ability to host multiple instances of Microservices across the globe, it is best that the deployment and implementation details are hidden from the client. Tightly coupled, deployment location aware communication can often result in service outages if the service deployment is relocated.
Following is an illustration of this scenario:
Service proxy (Problem)
Service proxy is an implementation pattern which solves a communication problem. Service proxy helps in abstracting the service implementation from the interface definitions. This lets you change the service implementation without affecting the contracts with the clients. To enable communication with an Actor or a Microservice, a client...