#Book
## 設計
### [[🗃️API]]
- フィード発行API(POST)
- フィード取得API(GET)
- FanOutサービス
- 投稿を友人全員に配信すること
- 2種類ある
- 書き込み時FanOut(プッシュ型)
- 投稿が公開された直ごに友人の[[🗃️キャッシュ]]に配信される
- メリ
- すぐにい反映される
- 取得が早い
- デメ
- 友人が多くいると反映が遅くなる
- 非アクティブなユーザーやめったにログインしないユーザにも計算資源を浪費してしまう
- 読み込み時FanOut(プル型)
- メリ
- 計算資源を浪費してしまうことがない
- hotkey問題が起きない
- デメ
- フィードの取得に時間がかかる
- 両者の利点をいかすため、ハイブリッド型で実装
- 友人の多い著名人は、プル型
- それ以外のユーザーはプッシュ型
- 投稿処理の流れ
- 投稿時に、新規投稿したpost_idとユーザーリストをメッセージキューに渡す
- <user_id, post_id>のフィードキャッシュに格納する
-