Pandangan Mendalam tentang API V2: Model Restoran
Melihat Lebih Dalam pada API V2
Sebagai penyedia API, Brick memahami bahwa versi baru API tidak dapat dihindari karena pengetahuan dan pengalaman kami tentang sistem terus meningkat. Oleh karena itu, kami merilis ketersediaan baru dari generasi API berikutnya, V2, yang bertujuan untuk membawa lebih banyak skalabilitas, keamanan, paparan, dan pengalaman pembayaran terdesentralisasi untuk memperkuat perusahaan fintech di Asia Tenggara.
Lalu, apa perbedaannya dengan V1?
Secara teknis, V1 adalah pembaruan sinkron di mana transaksi yang dipanggil menunggu pembaruan yang dihasilkan selesai. Sementara V2 adalah pembaruan asinkron di mana pembaruan diurutkan setelah yang lain dan sistem tidak menunggu pembaruan selesai. Pembaruan ini kemudian dipicu oleh pekerjaan yang dijadwalkan secara internal yang kemudian memperbarui data di database.
Mari kita dalami lebih lanjut tentang sinkron dan asinkron untuk membantu Anda memahami sekilas versi API baru Brick, V2.
Dari deskripsi hingga analogi
Sinkron dan asinkron, Anda mungkin telah memahami kedua konsep ini, terutama dalam arsitektur Open API. Ini sering digunakan oleh pengembang untuk menyediakan cara untuk membuat permintaan segera atau terjadwal untuk sumber daya, data, atau layanan ketika tersedia. Meskipun mereka memiliki fungsi yang sama, masing-masing sebenarnya memiliki metode dan hasil yang berbeda.
Sinkron Panggilan API ini berarti Anda memanggil layanan web dan menunggu sampai kembali. Dengan kata lain, semua eksekusi kode tambahan dan interaksi pengguna dihentikan sampai panggilan kembali.
Ini dapat digambarkan dalam contoh kehidupan nyata di restoran.
Ketika Anda memesan makanan, Anda perlu pergi ke konter untuk dilayani. Pelayan akan mencatat pesanan Anda dan meneruskannya ke dapur agar disiapkan. Jika Anda melihat layanan terlalu lama, Anda mungkin memilih untuk pergi tanpa makanan apa pun. Tetapi jika Anda ingin tinggal dan mendapatkan hidangan Anda yang disiapkan, Anda harus membayarnya pada akhirnya.
Setelah Anda meninggalkan restoran dengan makanan di tangan Anda, pelayan akan melayani pelanggan berikutnya dan memulai proses yang sama seperti Anda. Begitu juga ketika Anda pergi.
Asinkron Berbeda dari sebelumnya, panggilan API asinkron berarti pengguna tidak menghentikan operasi lain saat menunggu panggilan layanan web kembali. Kode lain dieksekusi, kemudian pengguna dapat terus berinteraksi dengan halaman (atau UI program).
Apakah Anda sering pergi ke restoran cepat saji? Jika ya, Anda mungkin memahami aliran yang mirip antara restoran cepat saji dan API asinkron.
Misalnya, Anda memesan cheeseburger dan cola di konter. Setelah Anda membayarnya, pelayan meneruskan pesanan ke dapur dan terus melayani pelanggan lain sementara koki menyiapkan hidangan. Setelah makanan Anda siap, koki meletakkan pesanan Anda di meja pengambilan. Sekarang manajer take-away akan bertanggung jawab dan memberi tahu pelayan bahwa pesanan tertentu sudah siap sehingga pelayan mengambil pesanan dan menyajikannya kepada Anda.
Tetapi dalam kasus ini, di mana asinkron akan berada?
Ketika Anda menyelesaikan pembayaran dan menunggu hidangan, pelayan akan menggunakan waktu kosong mereka untuk melayani pelanggan lain. Proses yang sama seperti Anda, setelah pelanggan lain membeli pesanan, pelayan meneruskan pesanan baru ke dapur dan terus melayani yang lain.
Manfaat API Asinkron
Pengguna cenderung berpikir bahwa API asinkron berarti kinerja dan kecepatan yang lebih baik, sementara dalam kenyataannya, menjalankan beberapa tugas mungkin tidak memiliki dampak langsung di area-area ini.
Namun, beberapa manfaat masih dapat ditemukan pada API asinkron yang dapat Anda pelajari lebih lanjut di bawah ini:
- Skalabilitas Karena async adalah struktur sintaks yang dikenal baik dari banyak bahasa pemrograman, ini memungkinkan asinkron untuk bekerja dengan janji secara efektif. Sementara itu, janji adalah objek yang mencerna perilaku operasi asinkron.
Kedua konsep ini melekat pada ide skalabilitas, yang dapat terjadi dalam dua cara; secara horizontal dan vertikal.
Horizontal: Program sinkron dan asinkron dapat memanfaatkan penskalaan ini dengan menambahkan server tambahan untuk mengukur layanan.
Vertikal: Proses ini dapat lebih sederhana daripada penskalaan horizontal. Program asinkron dapat memanfaatkan proses ini untuk mengotorisasi satu server dalam menambah jumlah permintaan yang dapat ditangani server.
Dengan memasukkan fungsi async, pengembang dapat menyederhanakan program yang seharusnya sinkron sebelumnya dengan menggunakan metode callback berbasis janji.
- Pengalaman Pengguna Jika dibandingkan dengan sinkron, asinkron memiliki kemampuan untuk lebih meningkatkan pengalaman pengguna dalam berbagai cara. Ini dapat dilihat dalam cara API suatu program dapat dimuat pada satu waktu. Oleh karena itu, ini menghasilkan responsivitas yang lebih cepat dan meminimalkan penundaan pemuatan halaman.
Sekali lagi, kegagalan suatu thread tidak akan memiliki dampak penting pada yang lain untuk berjalan atau merender. Sehingga, ada lebih banyak ketersediaan karena aplikasi asinkron.