Skip to content

Latest commit

 

History

History
108 lines (89 loc) · 3.21 KB

10_notification_system.md

File metadata and controls

108 lines (89 loc) · 3.21 KB

Notification System (Chapter10)

ニュース速報や予定などを通知するシステム.いくつかの種類が存在する image

Design Process Framework

Step1: 課題理解,スコープ定義

  • どのタイプをサポートする?
    • Push通知,SMS,Email

フェルミ推定

Step2:基本設計

Different types of notifications

iOS push notification

image

{
 "aps":{
         "alert":{
           "title": "Game Request",
           "body" : "Bob wants to play chess",
           "action-loc-key": "PLAY"
         },
         "badge":5
       }
}
Android push notification

image

SMS message

image

Email

image

All including conclusion

image

Contact info gathering flow

image image

Notification sending/receiving flow

High-level design

image

Service 1 to N
Notification system
Third-party services
iOS, Android, SMS, Email
High-level design(improved)

image

Service 1 to N
Notification servers
{
 "to":[
   {
     "user_id": 123456
   }
 ],
 "from": {
   "email": "[email protected]"
 },
 "subject": "Hello, World!",
 "content": [
   {
     "type": "text/plain",
     "value": "Hello, World!"
   }
 ]

}
Cash
DB
Workers
Third-party services
iOS, Android, SMS, Email

Step3:詳細設計

Reliability

データロスを防ぐには?

image

受信者は通知をちょうど1回だけ受け取るか?

追加の検討項目

通知のテンプレート
通知設定
Rate limiting
Retry mechanism
プッシュ通知のセキュリティ
通知の監視

image

Event Tracking

image

Updated design

image

Step4:まとめ

Extra