ð NOTIFICATION_STRATEGY.md - Notification Strategy & Delivery Architecture (āļĒāļļāļāļāļĻāļēāļŠāļāļĢāđāļāļēāļĢāļĒāļīāļāđāļāđāļāđāļāļ·āļāļāđāļĨāļ°āļĢāļ°āļāļāļāļąāļāļŠāđāļ)
This document outlines the notification priorities, channels, retry strategies, and failover architectures for the SplitDee platform.
āđāļāļāļŠāļēāļĢāļāļāļąāļāļāļĩāđāļŠāļĢāļļāļāļĨāļģāļāļąāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļāļāļāđāļāļāļ§āļēāļĄāļāļēāļĢāđāļāđāļāđāļāļ·āļāļ āļāđāļāļāļāļēāļāļāļēāļĢāļŠāđāļ āđāļāļāļāļēāļĢāļŠāđāļāļāđāļģāđāļĄāļ·āđāļāļĨāđāļĄāđāļŦāļĨāļ§ āđāļĨāļ°āđāļāļ§āļāļēāļāļāļđāđāļāļ·āļāļĢāļ°āļāļāđāļāđāļāđāļāļ·āļāļāļŠāļģāļŦāļĢāļąāļ SplitDee
ðđð āļ āļēāļĐāļēāđāļāļĒ (āļŠāļģāļŦāļĢāļąāļāļāļđāđāđāļāđāļāļēāļ)
1. āļĨāļģāļāļąāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāđāļĨāļ°āļāđāļāļāļāļēāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļ
- āļāļąāđāļāļŦāļēāļĢāļāļīāļĨāđāļŦāļĄāđ (New Bill Published): āļĢāļ°āļāļąāļāļāļēāļāļāļĨāļēāļ āļŠāđāļāļāđāļēāļ Push Notification (FCM) āđāļāļŦāļāđāļēāļāļāļĄāļ·āļāļāļ·āļ āđāļĨāļ°āđāļāđāļāđāļāļ·āļāļāļŦāļāđāļēāļāđāļēāļ§āđāļāđāļāļ āļāļđāđāđāļāđāļāļāđāļāļīāļāļāļīāļāđāļāđ
- āļāļĢāļ§āļāļŠāļĨāļīāļāđāļāļāļāđāļēāļāļŠāļģāđāļĢāđāļ (Slip Verified): āļĢāļ°āļāļąāļāļŠāļđāļ āļŠāđāļāļāđāļēāļāļŦāļāđāļēāļāļāļĄāļ·āļāļāļ·āļāļāđāļ§āļ (FCM) āđāļĨāļ°āđāļāđāļāđāļāļ·āļāļāļĢāļ°āļāļāđāļāđāļēāļŦāđāļāļāđāļāļāļāļĨāļļāđāļĄ āļŦāđāļēāļĄāļāļīāļ
- āļāļĢāļ§āļāļŠāļĨāļīāļāđāļāļāđāļĄāđāļāđāļēāļ/āļāļāļīāđāļŠāļ (Payment Rejected): āļĢāļ°āļāļąāļāļŠāļđāļ āļŠāđāļāļāđāļ§āļ (FCM) āđāļĨāļ°āđāļŠāļāļāļāļĨāđāļāđāļāļ āļāļĢāđāļāļĄāļŠāđāļāļāļąāļāļāļķāļāļŠāļģāļĢāļāļāđāļāđāļēāđāļĄāļĨ/SMS āļŦāđāļēāļĄāļāļīāļ
- āļŠāļ°āļāļīāļāļāļ§āļāđāļāļīāļ AI (AI Reminder): āļĢāļ°āļāļąāļāļāļēāļāļāļĨāļēāļ āļĒāļīāļāļŦāļāđāļēāļāļ (FCM) āļŦāļĢāļ·āļāđāļāļāļāļāļĢāđāļāļāļąāļāđāļĨāļāđāđāļāļ·āđāļāļāļāļļāļāļāļĨ (LINE) āļāļđāđāđāļāđāđāļĨāļ·āļāļāđāļāļīāļāļāļīāļāļŠāđāļāļĨāđāļ āļēāļĐāļēāđāļāđ
- āļŠāļąāļāļ§āđāđāļĨāļĩāđāļĒāļāđāļĄāļāļīāļāđāļ§āļĒ HP āļŦāļĄāļ (Pet Status): āļĢāļ°āļāļąāļāļāđāļģ āđāļāđāļāđāļāļāļēāļ°āļāļĨāđāļāļāđāļāđāļāļāļāļĨāļļāđāļĄāđāļāđāļēāļāļąāđāļ āļāļīāļāđāļŠāļĩāļĒāļāđāļāļ·āļāļāđāļāđ
- āđāļāļāļāļīāļĄāļāđāļĄāļēāđāļŦāļĄāđ (Chat Message): āļĢāļ°āļāļąāļāļāļēāļāļāļĨāļēāļ āļĒāļīāļāđāļāļ·āļāļāļŦāļāđāļēāļāļ (FCM) āļāļīāļāđāļŠāļĩāļĒāļāđāļāđ
2. āđāļāļĢāļāļŠāļĢāđāļēāļāļāļđāđāđāļŦāđāļāļĢāļīāļāļēāļĢāļāļąāļāļŠāđāļ (Delivery Providers)
- Firebase Cloud Messaging (FCM): āļĒāļīāļāļāđāļāļāļ§āļēāļĄāļāđāļ§āļāđāļāđāļēāļāļāļĄāļ·āļāļāļ·āļāļāļąāđāļ iOS āđāļĨāļ° Android āļĄāļĩāļāļēāļĢāļāļąāļāđāļāļāļĩāļāļēāļĢāđāļāļāļīāļĨāđāļāļĩāļĒāļāđ āđāļāļ·āđāļāđāļĄāļ·āđāļāļāļāļāļāļāļ°āļŠāļĨāļąāļāļŦāļāđāļēāļāļāđāļāđāļēāļāļīāļĨāļāļąāļāļāļĩ
- LINE Messaging API: āļāļ§āļāđāļāļīāļāļāļąāļāđāļāļĄāļąāļāļīāđāļāđāļāļĢāļđāļāļĄāļĩāļĄāļāđāļāļāđāļĄāļāļīāļŠāđāļāļāļĢāļāđāļāđāļēāļŦāđāļāļāđāļāļāļŠāđāļ§āļāļāļļāļāļāļĨāļāļāļāđāļāļ·āđāļāļ āđāļāđāļĢāļąāļāļāļ§āļēāļĄāļāļīāļĒāļĄāļŠāļđāļāđāļĨāļ°āļāđāļāļāļāļĨāļēāļĒāļāļĩāđāļŠāļļāļāļŠāļģāļŦāļĢāļąāļāļāļāđāļāļĒ
- Email (Amazon SES / SendGrid): āļŠāļģāļŦāļĢāļąāļāļĢāļēāļĒāļāļēāļāļĒāļāļāļāļąāļāļāļĩāđāļĨāļ°āļŠāļĢāļļāļāļāļĢāļ°āļ§āļąāļāļīāļŦāļāļĩāđāļĢāļēāļĒāđāļāļ·āļāļ āļāļāļŦāļĄāļēāļĒāđāļāļĨāļĩāđāļĒāļāļĢāļŦāļąāļŠāļāđāļēāļ āđāļĨāļ°āļāļĢāļ°āđāļāđāļāļāđāļāļāļāđāļāđāļāđāđāļĒāđāļāļŠāļĨāļīāļāļāļīāļ
3. āđāļāļāļāļđāđāļāļ·āļāļāļēāļĢāļāļąāļāļŠāđāļāđāļĨāļ°āļŠāđāļāļāđāļģāđāļĄāļ·āđāļāļĨāđāļĄāđāļŦāļĨāļ§ (Retry & Fallback)
- āļāļēāļĢāļāļĒāļēāļĒāļēāļĄāļŠāđāļāļāđāļģ (Retry): āļĢāļąāļāļŦāļĨāļąāļāļāđāļēāļāļāđāļ§āļĒ Celery/Redis āļāļīāļ§āļāļēāļ āļŦāļēāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļāļāļĢāļąāļāļāđāļē āļĢāļ°āļāļāļāļ°āļāļĒāļąāļāđāļ§āļĨāļēāļĢāļāļĢāļąāļāļĢāļāļāļāļąāļāđāļāđāļāļāļāļ§āļĩāļāļđāļ (Exponential Backoff with Jitter) āđāļāļ·āđāļāļĨāļāđāļĢāļāļāļāļāļąāļāļĢāļ°āļāļ āļĒāļīāļāļŠāļđāļāļŠāļļāļ 5 āļāļĢāļąāđāļ āļŦāļēāļāļĒāļąāļāļĨāđāļĄāđāļŦāļĨāļ§āđāļĒāļāđāļāđāļēāđāļāđāļāļāđāļēāļāļĢāļąāļāđāļāđāļāļąāđāļ (DLQ)
- āļāļĨāđāļāļŠāļģāļĢāļāļāļāļđāđāļāļ·āļ (Fallback): āļŦāļēāļāļĄāļ·āļāļāļ·āļāļĒāļīāļ FCM āļŠāļĨāļąāļāđāļĄāđāđāļāđāļāļĨ āđāļŦāđāļŠāđāļāđāļāđāļēāļāļĢāļ°āļāļīāđāļāđāļāđāļāđāļāļ·āļāļāļ āļēāļĒāđāļāđāļāļāļāļąāļāļāļĩ āļŦāļēāļāļĢāļ°āļāļāļŠāļĨāļąāļāđāļāļāļĩāđāļĨāļāđāđāļāļīāļāļāļąāļāļāđāļāļāļāļāļāđāļĨāļāđ āđāļŦāđāđāļāļĨāļĩāđāļĒāļāđāļāđāļāđ Push āļāđāļāļāļ§āļēāļĄāđāļāļ·āļāļāļāļĢāļĢāļĄāļāļēāļāļēāļāđāļāļāļĢāđāļĄāļ·āļāļāļ·āļāđāļāļ
ðŽð§ English (For AI Agents)
1. Notification Priorities & Channels
| Event Type | Priority | Core Channel | Fallback Channel | User Configurable? |
|---|---|---|---|---|
| New Bill Published | Medium | Push Notification (FCM) | In-app notification | Yes |
| Slip Verified (Paid) | High | Push Notification (FCM) | Group Chat alert | No |
| Payment Rejected | High | Push (FCM) + In-app Alert | Email / SMS | No |
| AI Reminder (Overdue) | Medium | Push (FCM) / LINE | In-app | Yes |
| Pet Status Alert (Sick) | Low | Push (FCM) | In-app only | Yes |
| Chat Message Recieved | Medium | Push Notification (FCM) | None | Yes |
2. Delivery Providers Architecture
- Firebase Cloud Messaging (FCM): Native push alerts for iOS/Android. Payloads embed navigation ids (
bill_id,group_id). - LINE Messaging API: Dynamic AI reminders and spend summaries using Mochi memes sent directly to user LINE accounts.
- Email (Amazon SES): Monthly spending stats, security emails, and payment dispute updates.
3. Retry & Fallback Strategy
- Retry Mechanics: Async workers process events with Exponential Backoff with Jitter retry intervals. Retries up to 5 times before moving to the Dead Letter Queue (DLQ).
- Fallback Rules: If FCM registration token expires, fallback to In-app notification feed. If LINE is offline, fallback to standard FCM notifications.