Lewati ke konten utama
menjadi.dev
Chapter 41.1 Backend Lanjutan

Arsitektur Notifikasi: Transactional, Broadcast, Push

Mendesain sistem notifikasi multi-channel — email, SMS, Web Push, dan in-app

Tujuan Pembelajaran

  • Memahami tiga tipe notifikasi: transactional (user-triggered), broadcast (marketing), push (real-time)
  • Mampu mendesain notification architecture yang scalable dan multi-channel
  • Mengerti perbedaan SLA untuk setiap tipe notifikasi

Analogi

Diagram

      Notifikasi = Sistem Surat-Menyurat:

Transactional (Prioritas):
"Email verifikasi akun" — HARUS sampai, HARUS cepat.
Seperti surat penting dengan tanda tangan.

Broadcast (Marketing):
"Diskon akhir tahun!" — boleh terlambat, boleh tidak sampai.
Seperti brosur di kotak surat.

Push (Real-time):
"Pesanan kamu sedang diantar!" — real-time, harus instant.
Seperti telepon — harus langsung diterima.
    

Tiga tipe notifikasi = tiga prioritas berbeda. Transactional HARUS sampai. Broadcast boleh delay. Push harus instant.

Penjelasan Konsep

Notification system adalah infrastruktur komunikasi antara sistem dan user. Setiap tipe notifikasi punya karakteristik dan SLA berbeda.

Transactional notifications: Dipicu oleh aksi user — verifikasi email, reset password, invoice, order confirmation. Karakteristik: (1) Wajib sampai (deliverability kritis). (2) Waktu pengiriman penting (dalam hitungan detik). (3) One-to-one (satu penerima). (4) Biasanya email atau SMS.

Broadcast notifications: Marketing, newsletter, announcement. Karakteristik: (1) One-to-many (ribuan penerima). (2) Waktu tidak kritis (bisa dijadwalkan). (3) Butuh unsubscribe mechanism (legal requirement). (4) Biasanya email.

Push notifications: Real-time alert — pesanan dikirim, chat baru, mention. Karakteristik: (1) HARUS real-time (< 1 detik). (2) Platform-specific (Web Push, APNs untuk iOS, FCM untuk Android). (3) User bisa opt-in/opt-out per channel.

Arsitektur: (1) Notification service — central service yang menerima request notifikasi. (2) Template engine — render konten dengan variable substitution. (3) Channel adapters — Email adapter (Resend/SES), SMS adapter (Twilio), Push adapter (Web Push API, FCM), In-app adapter (WebSocket). (4) Queue system — antrean untuk broadcast (volume tinggi). (5) Preference service — user bisa pilih channel dan frekuensi.

Inti yang Perlu Dipahami

Bagian ini berfokus pada memahami tiga tipe notifikasi: transactional (user-triggered), broadcast (marketing), push (real-time)., mampu mendesain notification architecture yang scalable dan multi-channel., dan mengerti perbedaan SLA untuk setiap tipe notifikasi. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.

Saat membaca Arsitektur Notifikasi, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.

Cara Membayangkannya

Tiga tipe notifikasi = tiga prioritas berbeda. Transactional HARUS sampai. Broadcast boleh delay. Push harus instant. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.

Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.

Konteks dalam Perjalanan Belajar

Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.

Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.

Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.

Prompt AI

Desain arsitektur notifikasi untuk e-commerce: order confirmation (email, transactional), promo weekly (email, broadcast), order shipped (push, real-time). Buat diagram arsitektur.

Pertanyaan Reflektif

Apakah aplikasi-mu membedakan transactional vs broadcast notifications? Atau semua dikirim via channel yang sama tanpa prioritas?