Якщо клієнт повинен зателефонувати їм один за одним, щоб отримати необхідні йому дані для завантаження веб-сторінки на клієнта?
Це залежить; однак я б запропонував надати клієнтам безпосередньо корисні можливості та приховати (інкапсулювати) деталі того, як збираються результати (наприклад, за допомогою декількох мікросервісів).
Якщо в поєднанні окремих результатів мікросервісу клієнтом задіяно занадто багато логіки, це може ненавмисно спричинити проникнення в клієнта деякої логіки бізнесу. Він також може піддавати клієнту більше вашої внутрішньої архітектури, ніж ви хотіли, перешкоджаючи подальшому рефакторингу мікросервісів.
Отже, це означає, що для мікросервісів іноді корисно мати мікросервіс, який надає клієнту кінцеву точку, яка має корисні абстракції, і яка виконує координацію на більш високому рівні інших (можливо, тепер більш внутрішніх) мікросервісів.
(Крім того, поїздки до клієнта, ймовірно, дорожчі, ніж у ваших мікросервісів один до одного.)
Наприклад, якщо ви подивитеся на напрямок, який веде GraphQL, ви знайдете клієнтів, які видають безпосередньо відповідні запити до кінцевої точки, які можуть бути, а можуть і не бути реалізовані як набір мікрослужб. Оскільки архітектура мікросервісів прихована за GraphQL, це робить архітектуру простішою для рефакторингу, а також більш зручною для клієнта. Дивіться, наприклад, https://stackoverflow.com/a/38079681/471129 .