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