Backend nền tảng
I9 · Thiết kế LLD: Hệ thống Notification
Event → Notification Service → Strategy (chọn kênh) → Email / SMS / Push.
I9 · Middle
Một tổng đài: nhận sự kiện, chọn kênh phù hợp (email/SMS/push) và báo cho người đăng ký.
Cốt lõi
- Event → Notification Service → Strategy (chọn kênh) → Email / SMS / Push.
- Template cho nội dung; Observer để thông báo cho subscriber.
Đánh đổi
Mở rộng tốt → thêm kênh mới không sửa code cũ (Open/Closed).
Trong thực tế
Thông báo Swiggy, Amazon; push notification Instagram.
Bug thường gặp
Retry gửi thông báo không có khóa chống trùng → người dùng nhận 5 tin SMS giống nhau.
Tự hỏi lại
Retry, chống gửi trùng, tôn trọng tùy chọn tắt thông báo của user?