Notification Preferences & Rate Limiting
Beri user kontrol atas notifikasi — channel, frekuensi, dan jenis yang mereka inginkan
Tujuan Pembelajaran
- Mampu membangun notification preference center yang user-friendly
- Mampu mengimplementasikan rate limiting per user per channel
- Memahami legal requirements untuk opt-out (CAN-SPAM, GDPR)
Analogi
Notification Preferences = Remote Control:
User punya remote control untuk notifikasi:
- Channel: Email ON | Push ON | SMS OFF
- Frekuensi: Instant | Daily digest | Weekly
- Jenis: Transactional (WAJIB, tidak bisa dimatikan) | Marketing (bisa dimatikan) | Social (bisa dimatikan)
Tanpa preference:
User dibombardir semua channel → unsubscribe semua → kamu kehilangan semua channel
Dengan preference:
User pilih yang relevan → tetap subscribed → engagement lebih tinggi
Notification preferences seperti remote control — beri user kontrol atas channel, frekuensi, dan jenis.
Penjelasan Konsep
Notification preferences adalah win-win: user tidak dibombardir notifikasi yang tidak relevan, dan kamu menjaga engagement karena user hanya dapat yang mereka inginkan.
Preference model: (1) Per-channel toggle — Email ON/OFF, Push ON/OFF, SMS ON/OFF. (2) Per-category — Transactional (WAJIB — tidak bisa opt-out karena critical untuk service). Marketing (opt-in, bisa opt-out). Social (mention, follow — bisa opt-out). (3) Frequency — Instant (setiap event), Daily digest (ringkasan harian), Weekly digest.
Rate limiting: (1) Per user per channel — max 1 push per 5 menit. (2) Per user per day — max 3 marketing email per hari. (3) Global throttle — untuk broadcast, jangan kirim 100.000 email sekaligus (rate limit oleh provider). Antre dan kirim bertahap.
Legal requirements: (1) CAN-SPAM (US) — unsubscribe link wajib di setiap email komersial. Tidak boleh misleading subject. (2) GDPR (EU) — opt-in explicit untuk marketing. User bisa request hapus data. (3) Unsubscribe harus instant dan permanent. Jangan ada aturan unsubscribe butuh 7 hari untuk diproses.
Implementation: Preference center page (user-friendly). Database schema: user_notification_preferences (user_id, channel, category, enabled, frequency). Middleware: cek preference sebelum kirim notifikasi.
Inti yang Perlu Dipahami
Bagian ini berfokus pada mampu membangun notification preference center yang user-friendly., mampu mengimplementasikan rate limiting per user per channel., dan memahami legal requirements untuk opt-out (CAN-SPAM, GDPR). Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca Notification Preferences & Rate Limiting, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
Notification preferences seperti remote control — beri user kontrol atas channel, frekuensi, dan jenis. 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
Bangun notification preference center: channel toggle (email, push, SMS), category toggle (transactional, marketing, social), frequency (instant, daily, weekly). Implementasi middleware yang cek preference sebelum kirim.
Pertanyaan Reflektif
Apakah aplikasi-mu punya notification preferences? Atau user cuma bisa ON/OFF semua? Berapa banyak user yang unsubscribe karena tidak bisa pilih?