Service Façade \ API Gateway

Problem
Microservices architecture recommends services to be decomposed as simpler units which can be knit together to achieve an end-to-end business use case. This results in client being cognizant of services at a granular level thereby increasing the complexity of management overheads related to communication, transformation, and transaction. Any change in the API contracts of the Microservices will also impact the client impacting the stability of the system. Also, with an increase in the number of services in the system, the complexity of client applications increases to accommodate more communication channels and service discovery overheads. The following diagram illustrates such a scenario:

Service Façade (Problem)
Solution
Microservices, forced by the very idea behind the concept, recommend granularization of services to improve reuse and to enforce single responsibility principle. While this improves maintainability, it also introduces the requirement of...