Haruskah klien memanggil mereka secara langsung satu demi satu untuk mendapatkan data yang diperlukan untuk memuat halaman web pada klien?
Tergantung; namun, saya menyarankan untuk menyediakan kemampuan yang langsung dapat digunakan untuk klien dan menyembunyikan (merangkum) perincian tentang bagaimana hasil dikumpulkan (misalnya melalui beberapa layanan mikro).
Jika terlalu banyak logika terlibat dalam menggabungkan hasil layanan-mikro individual oleh klien, yang mungkin secara tidak sengaja menyebabkan beberapa logika bisnis merayap ke dalam klien. Itu juga dapat mengekspos lebih banyak arsitektur internal Anda ke klien daripada yang Anda inginkan, menghambat refactoring nanti dari layanan microser.
Jadi, itu berarti dengan layanan microser, terkadang sangat membantu untuk memiliki layanan microser pembungkus yang memberikan klien titik akhir yang memiliki abstraksi yang berguna dan yang melakukan koordinasi tingkat yang lebih tinggi dari layanan microser lainnya (mungkin sekarang lebih internal).
(Selanjutnya, perjalanan pulang pergi ke klien kemungkinan lebih mahal daripada dari layanan microsoft Anda satu sama lain.)
Jika Anda melihat arah yang diambil oleh GraphQL, misalnya, Anda akan menemukan klien yang mengeluarkan pertanyaan yang relevan langsung ke titik akhir, yang mungkin atau mungkin tidak diterapkan sebagai kumpulan layanan mikro. Karena arsitektur microservices tersembunyi di belakang GraphQL, yang membuat arsitektur lebih mudah untuk diperbaiki dan lebih ramah kepada klien. Lihat, misalnya, https://stackoverflow.com/a/38079681/471129 .