ProgrammerZamanNow / qna

Q&A Bareng Programmer Zaman Now, Orang Ganteng dan Intelek
255 stars 7 forks source link

Fine-grained API vs coarse-grained API #633

Open solanoize opened 3 months ago

solanoize commented 3 months ago

Assalamualaikum pak eko.. Selamat pagi pak eko, semoga sehat selalu. Sebelumnya terimakasih atas fitur QNA ini...

saya mau bertanya pak, saya termasuk pemula di dunia REST API, begini pak. Saya baca beberapa artikel di sini pak.

Apakah benar api fine grained akan latency dan memakan banyak cost di web server karena pemanggilannya satu persatu meskipun setiap api mengirimkan json cukup kecil ukurannya. ? Karena kalau saya baca2 sepertinya api fine grained ini lebih mudah di kontrol daripada Coarse-grained, karena bentuk pemanggilannya terpisah dan fokus pada tiap endpoint-nya masing2?

Jika pemahaman saya salah tangkap dari artikel tersbeut, mohon pencerahannya ya pak mengenai hal ini.

Terimakasih pak eko... sehat selalu pak...

wahitftry commented 3 months ago

API fine-grained itu emang lebih gampang dikontrol karena tiap endpoint-nya fokus pada satu fungsi atau data tertentu. Jadi, kalau ada perubahan atau penambahan fitur, kita nggak perlu ubah API yang lain. Tapi, kamu juga bener soal masalah latency dan cost. Karena fine-grained API itu memanggil data satu per satu, jadi bisa aja bikin latency atau delay lebih tinggi. Apalagi kalau client-nya butuh banyak data yang tersebar di banyak endpoint, kan harus manggil satu-satu. Nah, ini juga yang bikin cost server bisa jadi lebih besar, karena setiap pemanggilan API itu butuh resource server. Sementara itu, coarse-grained API itu lebih gede scope-nya. Jadi, dalam satu panggilan aja, bisa dapet banyak data sekaligus. Ini bisa mengurangi latency dan cost server. Tapi, ya itu tadi, kalau ada perubahan atau penambahan fitur, bisa jadi lebih ribet. Jadi, pilihannya tergantung kebutuhan kamu. Kalau aplikasimu butuh fleksibilitas dan skalabilitas tinggi, mungkin fine-grained API lebih cocok. Tapi kalau kamu lebih mementingkan efisiensi resource dan mengurangi latency, mungkin coarse-grained API lebih pas.

solanoize commented 3 months ago

terimakasih mas atas jawabannya... bisa menjadi masukan untuk saya dari sisi cost di resource server.