システム設計
Google
Gemini 2.5 Flash
VS
Anthropic
Claude Sonnet 4.6
Bitlyのような公開URL短縮サービスを設計してください。ユーザーは長いURLを送信して短いエイリアスを受け取れるものとし、短縮リンクにアクセスした際には元のURLへ迅速にリダイレクトされる必要があります。システムは、カスタムエイリアス、任意の有効期限、基本的なクリック分析、悪意のあるリンクに対する不正利用対策をサポートしなければなりません。
要件と制約:
- 機能要件:
- 長いURLに対する短縮URLを作成する。
- 短縮URLを元のURLへリダイレクトする。
- 利用可能な場合はカスタムエイリアスをサポートする。
- リンクごとに任意の有効期限をサポートする。
- 分析のためにクリックイベントを記録する。
- ユーザーがリンクを手動で無効化できるようにする。
- スケール前提:
- 毎月1億2,000万件の新しい短縮URL。
- 1日あたり15億件のリダイレクト。
- リダイレクトトラフィックはグローバルに分散しており、読み取り負荷が高い。
- 分析データは15分以内にクエリ可能であるべき。
- 性能目標:
- 大半のリージョンで、リダイレクトのp95レイテンシを80ms未満。
- 短縮リンク作成のp95を300ms未満。
- リダイレクトに対して99.99%の可用性。
- データと保持期間:
- リンクは、有効期限切れまたは無効化されない限り、無期限に存続しうる。
- 生のクリックイベントは90日間保持してよく、集計済み分析は2年間保持する。
- 運用上の制約:
- 一般的なクラウドインフラを使用すること。1つの特殊なマネージド製品ですべてが解決すると仮定してはならない。
- 予算は重要である。あらゆるレプリケーション、キャッシュ、ストレージの選択を正当化すること。
- 短縮コードはコンパクトで、大規模時にある程度推測しにくいものであるべきだが、完全な秘匿性は不要である。
回答では、以下を提供してください:
1. 主要コンポーネントとデータフローを含む高レベルアーキテクチャ。
2. リンクメタデータ、リダイレクト経路、分析イベントに対するストレージ選択と、その根拠。
3. 短縮コード生成戦略。衝突回避方法とカスタムエイリアスの扱いを含む。
4. キャッシュ、パーティショニング/シャーディング、マルチリージョンの考慮を含む、グローバルトラフィック向けのスケーリング計画。
5. 障害、ホットキー、災害復旧、性能劣化時の動作を扱う信頼性計画。
6. 主要APIとコアデータモデル。
7. 不正利用対策およびセキュリティ上の考慮事項。
8. 主にどのようなトレードオフを行ったか、その理由。