Request Collapsing (Deduplikasi): Mengoptimalkan Data Fetching di Aplikasi Web Skala Besar
1. Pendahuluan
Pernahkah Anda mengamati aplikasi web Anda di browser dan melihat beberapa permintaan (request) API yang identik dikirim secara bersamaan? Atau mungkin Anda mendapati server backend Anda kewalahan karena menerima banyak request yang sama dalam waktu singkat dari berbagai klien atau microservices? Jika ya, Anda baru saja bertemu dengan masalah umum yang bisa menghambat performa dan skalabilitas aplikasi web modern.
Masalah ini sering muncul di aplikasi yang kompleks, terutama yang menggunakan arsitektur microservices, atau di UI yang sangat reaktif. Ketika berbagai komponen atau bagian sistem membutuhkan data yang sama pada waktu yang hampir bersamaan, mereka bisa saja memicu permintaan terpisah ke backend.
Dampaknya? Beban server yang tidak perlu, latensi yang meningkat, penggunaan sumber daya yang tidak efisien (CPU, memori, bandwidth), dan pada akhirnya, pengalaman pengguna yang kurang optimal serta biaya infrastruktur yang membengkak.
Di sinilah Request Collapsing, atau sering disebut Request Deduplication, datang sebagai pahlawan. Pola desain cerdas ini bertujuan untuk mengidentifikasi dan menggabungkan permintaan identik yang sedang berjalan (in-flight) menjadi satu permintaan tunggal. Hasil dari permintaan tunggal ini