Penerapan RabbitMQ untuk Notifikasi dan Email Otomatis pada Aplikasi - Perwira Learning Center

 

1. Latar Belakang

    Selamat malam, teman-teman. Kali ini kita akan mencoba mengerjakan studi kasus tentang pengiriman notifikasi dan email otomatis pada sebuah aplikasi. Biasanya, setelah pengguna melakukan aksi seperti mendaftar akun, aplikasi langsung mengirim email menggunakan SMTP. Namun, jika server email lambat atau sedang bermasalah, proses utama aplikasi bisa ikut terganggu karena harus menunggu pengiriman email selesai. Akibatnya, pengguna bisa mengalami keterlambatan bahkan kegagalan saat melakukan registrasi.
    Untuk mengatasi masalah tersebut, kita dapat memisahkan proses utama aplikasi dengan proses pengiriman email menggunakan RabbitMQ sebagai message broker. Dengan cara ini, aplikasi hanya perlu mengirim data email ke dalam antrian, lalu proses pengiriman akan ditangani secara terpisah oleh sistem lain di belakang layar. Melalui simulasi sederhana ini, kita akan memahami bagaimana penggunaan RabbitMQ dapat membuat aplikasi lebih stabil, responsif, dan tidak bergantung langsung pada kondisi server email.

2. Alat dan Bahan

2.1. Perangkat Lunak

- Sistem Operasi Linux Ubuntu

- Terminal 

- Visual Studio Code

- RabbitMQ Server

- Ethereal Email (untuk testing email service)

2.2. Perangkat Keras

- Laptop / PC

3. Pembahasan

3.1 Apa itu SMTP

    SMTP atau Simple Mail Transfer Protocol adalah protokol atau aturan yang digunakan untuk mengirim email melalui internet.

3.2 Studi Kasus: "Notifikasi Email Otomatis Menggunakan RabbitMQ

    Dalam sebuah aplikasi berbasis microservices, terdapat beberapa layanan yang bekerja secara terpisah. Pada studi kasus ini, kita memiliki:
  1. Account Service : Bertugas menangani proses registrasi dan pengelolaan data pengguna.
  2. Email Service : Bertugas mengirim email notifikasi seperti email verifikasi atau email selamat datang.
    Apabila Account Service mengirim email dengan cara memanggil Email Service secara langsung, cara ini mengandung beberapa risiko seperti proses registrasi yang terhenti. Selain itu, proses pengiriman email juga membutuhkan waktu. Jika dilakukan secara langsung, pengguna harus menunggu hingga proses tersebut selesai.

3.3 Tujuan Studi Kasus

Alur sistem yang diharapkan adalah sebagai berikut:
  • Account Service menerima permintaan pendaftaran pengguna.
  • Data pengguna berhasil disimpan ke database.
  • Account Service mengirim pesan ke RabbitMQ berisi informasi email.
  • Email Service membaca pesan dari RabbitMQ.
  • Email Service memproses dan mengirim email secara terpisah dari proses utama.

3.4 Penyelesain Masalah

 Kali ini kita akan mencoba menggunakan RabbitMQ Management Dashboard (web UI).
1. Enable RabbitMQ Management dengan sudo (atau docker)

2. Akses port http://localhost:15672 dan login sebagai guest
- Username : guest
- Password : guest
3. Restart RabbitMQ dengan "sudo systemctl restart rabbitmq-server"
4. Buat directory baru dan install semua dependensi

5. Buka VSCode, buat file publisher.js sebagai aplikasi utamanya dimana disini kita membuat koneksi ke RabbitMQ, membuat queue bernama email_ queue, dan mengirim data dalam bentuk JSON

6. Buat file consumer.js sebagai Email Service nya

7. Jalankan kedua aplikasi pada terminal yang berbeda

8. Pengiriman notifikasi email secara otomatis telah terkirim ke ethereal.email (hanya untuk testing)

Kita bisa juga mengecek antrian data yang ada pada server RabbitMQ kita lewat web UI tadi.



    Berdasarkan studi kasus yang telah dibahas, dapat disimpulkan bahwa penggunaan RabbitMQ dalam sistem notifikasi dan email otomatis memberikan solusi yang lebih stabil dibandingkan pemanggilan layanan secara langsung. Dengan memanfaatkan message broker, proses utama seperti pendaftaran user atau pembuatan data tetap dapat berjalan tanpa harus menunggu proses pengiriman email selesai.
    Demikian pembahasan tentang penerapan RabbitMQ untuk notifikasi email otomatis, terimakasih sudah membaca hingga akhir.

4. Daftar Pustaka

Santekno. (2025, 10 September). Studi Kasus: Microservice Notifikasi Email. Diakses dari: https://www.santekno.com/94.-studi-kasus-microservice-notifikasi-email/ 


Post a Comment

0 Comments