
Saat Proses API Berjalan Terlalu Lama
Misalkan kamu membuat API POST /checkout untuk Toko Online. Saat *user* mengeklik bayar, fungsi *Backend*-mu harus memproses banyak hal secara berurutan:
- Memotong saldo di Database (1 detik).
- Membuat Struk PDF (2 detik).
- Mengirim Email Struk PDF ke user (3 detik).
Total waktu *loading* yang dialami *user* di HP mereka adalah 6 detik. Di dunia web, menunggu 6 detik adalah bencana (pengguna akan mengira webnya macet lalu me-refresh halamannya berkali-kali). Padahal, *user* tidak perlu menunggu proses pembuatan PDF dan Email selesai saat itu juga, kan?
Untuk memisahkan pekerjaan utama dan pekerjaan sampingan, kita membutuhkan asisten yang disebut Message Broker / Message Queue (seperti RabbitMQ atau Apache Kafka).
Cara Kerja Antrean Pesan (Asynchronous)
Message Broker adalah aplikasi perantara yang bertugas menampung "Surat Tugas" (Pesan/Events) di dalam antrean (Queue) yang sangat cepat.
Mari kita rombak arsitektur Checkout tadi:
- User mengeklik bayar.
- Backend memotong saldo di Database (1 detik).
- Alih-alih membuat PDF, Backend HANYA membuang secarik surat pendek ke Message Broker (RabbitMQ): "Tolong buatkan PDF dan kirim email untuk Pesanan #99." (Proses melempar surat ini hanya memakan 0.01 detik!)
- Backend langsung membalas ke *user*: "Pembayaran Sukses! Email sedang dikirim." (User hanya menunggu 1.01 Detik!).
Lalu Siapa yang Mengirim Emailnya?
Di sudut *server* lain, kamu memiliki program kecil (disebut Worker / Consumer) yang menyala 24 jam. Program ini terus memantau RabbitMQ. Saat surat tugas "Pesanan #99" tadi masuk ke antrean, si Worker akan mengambilnya, lalu dengan santai bekerja membuat PDF dan mengirim Email di belakang layar (Background Job).
Keuntungan Tambahan: Tahan Banting!
Jika tiba-tiba Server Email (seperti Gmail/SendGrid) sedang *Down*, surat tugas di RabbitMQ TIDAK AKAN HILANG. Surat itu akan menunggu dengan sabar di dalam antrean. Begitu Server Email menyala lagi 2 jam kemudian, Worker akan langsung memprosesnya. Tidak ada pelanggan yang kehilangan struk belanjanya!
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates