Upgrade to Pro — share decks privately, control downloads, hide ads and more …

End-to-Endで考える信頼性 — LINEアプリにおける クライアント開発×SRE連携の実践

Avatar for maru maru
July 11, 2026

End-to-Endで考える信頼性 — LINEアプリにおける クライアント開発×SRE連携の実践

Avatar for maru

maru

July 11, 2026

More Decks by maru

Other Decks in Technology

Transcript

  1. © LY Corporation Public プラットフォームチーム BFF (Backend for Frontend) Client

    (Android / iOS) サービスA サービスB サービスC プラットフォームチーム
  2. © LY Corporation Public 問題が発⽣するリスクがある場所 BFF (Backend for Frontend) Client

    (Android / iOS) サービスA サービスB サービスC 通信エラー システム障害 システム障害 システム間 通信エラー クライアント 内部エラー
  3. © LY Corporation Public キャッシュが期限切れでも表⽰する キャッシュを表⽰ フォールバック 表⽰ (後述) コンテンツが

    期限切れ ページアクセス 期限切れから ⼀定期間以内 キャッシュを表⽰ YES YES NO NO
  4. © LY Corporation Public 解決策: 待機時間の調整 すぐにリトライ可能なもの → Exponential Backoff

    - 再試⾏のたびに待機時間を指数的に⻑くする 初回リクエスト 1秒 3秒 7秒 1秒待機 2秒待機 4秒待機 8秒待機 直後のリトライが不可の場合 → 1時間待機 初回リクエスト 1時間 1時間待機 1時間待機
  5. © LY Corporation Public 部分障害: 他のサービスの障害によって、 さらに別のサービスが表⽰できなくなる BFF (Backend for

    Frontend) Client (Android / iOS) サービスA サービスB サービスC システム障害 稼働中 稼働中 なんらか コンテンツを返したい
  6. © LY Corporation Public 表⽰できるコンテンツは返す BFF (Backend for Frontend) Client

    (Android / iOS) サービスA サービスB サービスC システム障害 稼働中 稼働中 コンテンツ1 コンテンツ2(エラー) コンテンツ3 … エラーのコンテンツのみ あとでリトライする
  7. © LY Corporation Public BFF (Backend for Frontend) Client (キャッシュあり)

    サービスA サービスB サービスC Prioritized Load Shedding Client (キャッシュなし) キャッシュ有無 キャッシュ有無 コンテンツ エラー ⾼負荷時
  8. © LY Corporation Public 対策まとめ オフラインでもコンテンツを⾒せたい 表⽰可能なキャッシュがない場合の処理 リトライをいつすべきか ⼀部サービスで障害がおきた場合は BFFの負荷が上がりすぎた場合は

    コンテンツをキャッシュする 期限切れでもキャッシュを表⽰する クライアント側にフォールバックを定義する Exponential Backoff / 1時間待機 表⽰できるコンテンツのみ表⽰し、後でリトライ キャッシュがないデバイスに優先的にコンテンツを返す