Communication — Tổng quan
Communication đưa tin tới tay người dùng — email, push, SMS, in-app. Nhận "việc cần gửi", render nội dung, chọn người nhận, gửi qua provider, theo dõi trạng thái gửi.
Communication khác Platform thế nào?
Hai phần gắn bó, chia vai rõ ràng:
- Platform quyết định "khi nào gửi gì" — sinh
NotificationJob(việc cần gửi) từ event/lệnh. - Communication lo "gửi như thế nào" — biến
NotificationJobthành tin thật tới đúng người, đúng template, theo dõi trạng thái gửi.
Các kiểu gửi tin
| Kiểu | Là gì | Ví dụ |
|---|---|---|
| Transactional / manual | Một tin cho một sự việc cụ thể | Email chào mừng, xác nhận booking |
| Reminder (nhắc nhở) | Tin theo lịch/ngưỡng | Sắp hết hạn giấy tờ, hóa đơn đến hạn |
| Campaign (chiến dịch) | Gửi hàng loạt tới nhiều người | Thông báo nghỉ lễ tới toàn bộ phụ huynh |
| Report subscription | Báo cáo định kỳ | Báo cáo tuần gửi tự động |
| In-app (UserMessage) | Tin hiển thị trong ứng dụng | Hộp thư thông báo trong app |
Các "vật thể" chính
| Tên | Một câu |
|---|---|
| NotificationJob | Một việc cần gửi (đầu vào từ Platform). |
| OutgoingMessage | Một tin gửi ra cho mỗi người nhận, mỗi kênh; mang trạng thái gửi. |
| UserMessage | Một tin in-app cho mỗi người nhận (hộp thư trong app). |
| MessagingJob + Blob | Điều phối payload lớn của campaign/report. |
| SmsUsage | Ledger tính phí cho mỗi SMS provider chấp nhận (theo BusinessUnit). |
| Template | Mẫu nội dung có placeholder {{...}}. |
Bạn nên đọc theo thứ tự
- Góc nhìn end-user — người dùng nhận tin qua những kênh nào.
- Khái niệm cốt lõi — các artifact & nguyên tắc gửi-một-lần.
- Kiến trúc hệ thống — pipeline gửi & key policy.
- Automation & Reminders — nhắc nhở theo lịch/ngưỡng, AutomationScheduler.
- Report Subscription — báo cáo định kỳ tự động.
- Luồng xử lý trong code — worker & file.
- Dữ liệu & bảng đọc/ghi — artifact ở SQL/Table/Blob, bảng theo luồng.
- Case thường gặp — template, suppress, seed recipient.