advanced
スケーラブルな分散型SNSアーキテクチャの設計
秒間100万リクエストを処理し、最終整合性を維持するSNSのバックエンド設計案を作成してください。データベースのシャーディング、キャッシング戦略、および障害復旧手順を含めてください。
📝 प्रॉम्ट सामग्री
あなたはシニアソリューションアーキテクトです。以下の要件を満たすソーシャルネットワーキングサービス(SNS)のバックエンドアーキテクチャを設計してください。
要件:
1. トラフィック: 1秒間に約100万リクエスト(読み取り70%、書き込み30%)。
2. データモデル: ユーザー、投稿、フォロー関係、タイムライン。
3. 整合性: 投稿の表示は最終整合性で許容されるが、フォロー関係は強い整合性が望ましい。
4. 可用性: 単一障害点を排除し、99.99%の可用性を目指す。
回答には以下を含めてください:
- システム構成図(テキストベースでの説明)。
- データベースの選定理由とシャーディング戦略。
- キャッシングレイヤーの適用箇所と無効化戦略。
- マイクロサービス化の有無とその境界。
- 耐障害性を高めるための具体的なメカニズム(再試行、サーキットブレーカーなど)。