はじめに
イントロダクションSystemDesign InterviewCat対象読者システムデザイン面接のコンプリートガイドDiscordサポートについて(購入者特典)
Discordサポート(購入者特典)システムデザイン基礎知識・パターン
コミュニケーション
リクエストを送信(HTTP)サーバー側の更新をリアルタイムに受け取る(Polling / Long Polling / SSE)リアルタイム双方向通信(WebSocket)サービス間通信の設計Pub/Subで複数のサービスにメッセージ配信スケーラビリティ
垂直スケーリングと水平スケーリングオートスケールロードバランサーでリクエストを負荷分散データベースレプリケーションによるクエリの分散パーティショニングによるスケーラビリティの向上Consistent Hashing(コンシステントハッシュ法)メッセージキューによるスケーラビリティの向上ステートフル接続に対してスケーラブルな設計を行うパフォーマンス
ネットワークレイテンシを改善するキャッシュを使ったパフォーマンスを向上CDNによる静的コンテンツのキャッシュCDNによる動的コンテンツのキャッシュインメモリデータベースを使ったキャッシュ並列分散処理によるパフォーマンス向上データベースインデックススロークエリ分析と最適化可用性、耐障害性、信頼性
冗長化とフェイルオーバーによるシステムを切り替えレプリケーションによる耐障害性、可用性の向上ログによるデータベースの耐障害性の向上オブジェクトストレージによる非構造化データの耐久性の向上リクエストのリトライ設計についてサーキットブレーカーでリトライによる過負荷を防ぐメッセージキューによる信頼性向上大量のリクエストを制限するトランザクション、分散システム
データベーストランザクションデータベースロックを使って排他制御を行う長時間のトランザクションへ分散共有ロックを活用するCAP定理と整合性モデルマイクロサービス間のトランザクションの整合性を維持するメッセージキューとデータベースの書き込みを同一のトランザクション内で実行するAPI Gatewayでマイクロサービスの入口を作るコーディネーションサービスを活用した分散システムの管理分散システムでユニークIDを設計するアプリケーション設計パターン
ファイルをオブジェクトストレージにアップロードする遅延キューを使って処理を遅らせるページネーションを設計する全文検索を導入するユーザーを認証・認可するビックデータ処理
大量のイベントデータをバッチ処理する大量のイベントデータをストリーム処理するアナリティクス用のデータベースを活用する応用問題
画像アップロードサービスの設計LINE(リアルタイムチャット)の設計YouTube Liveコメントサービスの設計チケット予約サービスの設計X/Twitterの設計X/Twitterリアルタイム検索の設計Dropboxの設計AtCoderコンテストの設計LinkedIn求人アラートサービスの設計Googleアナリティクスの設計Appendix
アプリケーション監視について考えるレビュアーのコメント
その他のコンテンツ

InterviewCat | テック企業面接対策ガイド
InterviewCatはテック企業の面接スタイルとその対策方法、面接にたどり着くまでのレジュメの書き方、分野ごとの面接技術質問集などが掲載されています。

InsideStory InterviewCat | エンジニアストーリー
InsideStory InterviewCatでは様々なエンジニアに話を聞き、IT企業の面接のぶっちゃけ話、年収、残業時間、面接対策でやった事、有名企業の〇〇の話などを掲載しています。

Coding InterviewCat | コーディング面接対策教材
Coding InterviewCatはコーディング面接に特化した教材です。コーディング面接に必要なPythonの学習、基本的なデータ構造とアルゴリズムとLeetCode効率的に学習する上での教材を用意しています。

English InterviewCat | エンジニア英語面接対策教材
English InterviewCatは英語学習のためのロードマップです。英語での選考面接に向けて準備をしているエンジニアの方向けに、英語学習時のマインドセットや目指すべき状態、具体的な方法についてご紹介します。

メガベンInterviewCat | メガベンエンジニア面接対策ガイド
メガベンInterviewCatはメガベンチャーへの就職を目指すソフトウェアエンジニア(バックエンド、フルスタック中心)を対象にした転職ガイドです。

ML InterviewCat | MLエンジニア企業面接対策ガイド
ML InterviewCatは機械学習エンジニアが面接に挑む上で必要な知識を学習できる教材です。要素技術の解説 + 面接で問われるドメイン知識の一問一答の面接質問が掲載されています。

ML System Design InterviewCat | MLシステムデザイン面接対策教材
ML System Design InterviewCatは機械学習エンジニアが面接に挑む上で必要な知識を学習できる教材です。機械学習のシステムデザインにフォーカスしています。

外資IT InterviewCat | 外資IT企業面接対策ガイド
外資IT InterviewCatは外資IT企業の(開発者を除く)技術職ロール面接対策をするための教材です。

新卒エンジニア就職ガイド | 新卒メガベンチャー・外資就活対策
新卒エンジニア就職ガイドは新卒エンジニアのための就活対策のガイドです。学生時代から様々な企業でインターンをし、新卒で外資系企業に新卒枠を使わずにソフトウェアエンジニアとして就職した筆者の体験をもとに作成しています。

エンジニア面接 実用英語表現集 | エンジニア面接実用英語現集
エンジニア面接 実用英語表現集は、エンジニアのための英語面接で使える実用的な表現をまとめた教材です。面接でよく使われるフレーズや表現を学ぶことで、英語でのコミュニケーション能力を向上させます。