Apa itu API Synchronous/Asynchronous?
API synchronous dan asynchronous adalah antarmuka pemrograman aplikasi yang mengembalikan data untuk permintaan baik secara langsung (synchronous) atau di kemudian waktu (asynchronous). API synchronous/asynchronous menyediakan cara untuk membuat permintaan langsung atau terjadwal untuk sumber daya, data, atau layanan yang tersedia.
Aplikasi mengirimkan permintaan data dan menunggu hingga nilai atau data tersebut dikembalikan. Sifat synchronous atau asynchronous dari sebuah API adalah fungsi dari rentang waktu antara permintaan dan pengembalian data.
Apa Perbedaan Antara API Synchronous dan Asynchronous?
API synchronous dan asynchronous berbeda dalam beberapa hal berikut:
- API Synchronous. Dengan API synchronous, diharapkan data dikembalikan segera. API ini biasanya synchronous ketika ketersediaan data atau layanan, sumber daya, dan konektivitas tinggi serta latensi rendah menjadi suatu keharusan.
- API Asynchronous. API asynchronous, juga dikenal sebagai API async. Dengan proses asynchronous, ketersediaan sumber daya, layanan, atau data mungkin tidak segera tersedia. API ini mungkin harus menunggu respons dari backend. API ini dapat memberikan pemberitahuan callback kepada peminta ketika sumber daya yang diminta sudah siap. Permintaan asynchronous berguna untuk menjaga fungsionalitas aplikasi tanpa harus menghabiskan sumber daya menunggu permintaan. API dapat bersifat asynchronous ketika ketersediaan data atau layanan rendah atau terlalu jenuh dengan permintaan.
Bagaimana Cara Kerja API Synchronous dan Asynchronous?
Salah satu cara untuk memahami bagaimana fungsi synchronous dan asynchronous bekerja adalah dengan memeriksa komunikasi. Dalam komunikasi synchronous, pihak-pihak yang terlibat terhubung secara langsung, seperti dalam panggilan telepon. Kedua pihak berkomunikasi secara bergantian dalam waktu yang bersamaan.
Email adalah contoh komunikasi asynchronous. Pengirim mengirimkan pesannya, namun penerima mungkin tidak merespons dalam waktu dekat.
Pada contoh pertama, panggilan telepon, kedua pihak disinkronkan untuk memungkinkan komunikasi real-time. Dalam komunikasi asynchronous, ada keterlambatan waktu yang diasumsikan atau waktu tunggu saat penerima pesan mempersiapkan dan mengirimkan pesan balasan.
Gambar 1 menggambarkan permintaan API synchronous. Panggilan API synchronous mengharapkan respons yang sensitif terhadap waktu dari aplikasi klien. Biasanya pihak yang meminta menunggu hingga menerima jawaban dari sistem.

Sebaliknya, dalam operasi asynchronous, pengguna mengajukan permintaan layanan dan siap untuk menerima respons dari sistem di kemudian hari. Sebuah parameter dalam aplikasi akan menentukan rentang waktu untuk pengiriman respons terjadwal — misalnya, dalam satu jam — atau aplikasi dapat menggunakan rentang waktu respons yang fleksibel bagi sistem untuk mengirimkan respons.

API Hybrid Synchronous dan Asynchronous
Sifat dari sebuah sistem dan pengalaman pengguna seringkali bergantung pada pengiriman informasi synchronous atau asynchronous. Dengan pengiriman synchronous, sumber daya sistem dapat terikat hingga permintaan pengguna diproses. Dengan pengiriman asynchronous, lebih sedikit sumber daya sistem yang dibutuhkan pada awalnya jika respons dapat diberikan pada waktu ketika lebih banyak sumber daya tersedia.
Dalam kedua kasus tersebut, kebutuhan pengguna umumnya menentukan pendekatan mana yang lebih sesuai.
Dimungkinkan untuk mengonfigurasi sistem yang menggabungkan kedua teknik ini menjadi pengaturan hybrid yang memberikan fleksibilitas tambahan dan mengoptimalkan penggunaan sumber daya. Sistem hybrid mendukung protokol HTTP dan messaging. Menggunakan kedua metode synchronous dan asynchronous dapat menghasilkan lingkungan aplikasi di mana sumber daya sistem digunakan dengan lebih efektif.