🔔 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)

  1. Firebase Cloud Messaging (FCM): āļĒāļīāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ”āđˆāļ§āļ™āđ€āļ‚āđ‰āļēāļˆāļ­āļĄāļ·āļ­āļ–āļ·āļ­āļ—āļąāđ‰āļ‡ iOS āđāļĨāļ° Android āļĄāļĩāļāļēāļĢāļāļąāļ‡āđ„āļ­āļ”āļĩāļāļēāļĢāđŒāļ”āļšāļīāļĨāđ€āļ‡āļĩāļĒāļšāđ† āđ€āļžāļ·āđˆāļ­āđ€āļĄāļ·āđˆāļ­āļ„āļ™āļāļ”āļˆāļ°āļŠāļĨāļąāļšāļŦāļ™āđ‰āļēāļˆāļ­āđ€āļ‚āđ‰āļēāļšāļīāļĨāļ—āļąāļ™āļ—āļĩ
  2. LINE Messaging API: āļ—āļ§āļ‡āđ€āļ‡āļīāļ™āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđ€āļ›āđ‡āļ™āļĢāļđāļ›āļĄāļĩāļĄāļ™āđ‰āļ­āļ‡āđ‚āļĄāļˆāļīāļŠāđˆāļ‡āļ•āļĢāļ‡āđ€āļ‚āđ‰āļēāļŦāđ‰āļ­āļ‡āđāļŠāļ—āļŠāđˆāļ§āļ™āļšāļļāļ„āļ„āļĨāļ‚āļ­āļ‡āđ€āļžāļ·āđˆāļ­āļ™ āđ„āļ”āđ‰āļĢāļąāļšāļ„āļ§āļēāļĄāļ™āļīāļĒāļĄāļŠāļđāļ‡āđāļĨāļ°āļœāđˆāļ­āļ™āļ„āļĨāļēāļĒāļ—āļĩāđˆāļŠāļļāļ”āļŠāļģāļŦāļĢāļąāļšāļ„āļ™āđ„āļ—āļĒ
  3. 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 TypePriorityCore ChannelFallback ChannelUser Configurable?
New Bill PublishedMediumPush Notification (FCM)In-app notificationYes
Slip Verified (Paid)HighPush Notification (FCM)Group Chat alertNo
Payment RejectedHighPush (FCM) + In-app AlertEmail / SMSNo
AI Reminder (Overdue)MediumPush (FCM) / LINEIn-appYes
Pet Status Alert (Sick)LowPush (FCM)In-app onlyYes
Chat Message RecievedMediumPush Notification (FCM)NoneYes

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.