Antrean (Queues)
Antrean () memungkinkanmu berkata "kerjakan ini nanti" alih-alih "kerjakan ini sekarang." Ketika seorang pengguna mendaftar, kamu tidak ingin ia menunggu sementara kamu mengirim email selamat datang dan mengubah ukuran avatar-nya. Masukkan tugas-tugas itu ke dalam antrean (RabbitMQ, BullMQ, Cloudflare Queues, SQS); seorang background worker (pekerja latar belakang) akan mengambilnya. Pengguna mendapat respons instan.
Gunakan antrean untuk tugas apa pun yang lambat, bisa gagal dan dicoba ulang (retry), atau tidak perlu selesai sebelum kamu memberi respons ke pengguna.
Kendala yang paling sering dihadapi pemula adalah sebuah job dalam antrean bisa berjalan lebih dari sekali — gangguan jaringan membuat worker mencoba ulang, dan kini email selamat datang terkirim dua kali. Solusinya adalah membuat job-job itu : rancang agar menjalankan job yang sama dua kali memiliki efek yang sama seperti menjalankannya satu kali (periksa "apakah saya sudah mengirim ini?" sebelum mengirim). Tentukan juga sejak awal apa yang terjadi pada job yang terus gagal; antrean yang matang mengarahkannya ke dead-letter queue sehingga satu pesan bermasalah tidak memblokir semua yang ada di belakangnya.