I have a web application that uses microservice architecture with a UI service decoupling front end from business services (like an API gateway). I'd like the UI to use fairly granular services so each control only needs to bind to data that's simple and relevant.
However in practice when the UI service needs to fulfill a request, it requests the relevant data from the microservices which don't necessarily have the same level of granularity. So each time a simple UI control updates, the underlying business services (and DAO's below that), are retrieving much more substantial data objects.
Is this a typical picture for microservices? Caching aside, I can't see how to avoid it without introducing a lot of finely granular methods into the microservice APIs (which feels like tightly coupling the business service interfaces to the UI). Alternatively would it be better to be less granular with the UI service, and allow the larger DTO up into the web page's Javascript?