システム設計観点

見積もり

  • 機能要件
    • 問題の優先度
    • who, why: 対象user
    • when, how: 優先ユースケース
    • what: 機能の必要不要
    • where: 既存システム連携
  • 非機能要件
    • req数
    • data量
    • レイテンシ
    • write/read heavy

ハイレベルデザイン

  • APIインターフェース
  • データモデル
  • アーキテクチャ概要図

ローレベルデザイン(トレードオフ判断)

  • 重要コンポーネント特定
  • パフォーマンス
    • レイテンシ
    • DB最適化(インデックス、クエリ)
    • キャッシュ戦略
  • スケーラビリティ
    • 運用負荷
    • 水平スケーリング
    • DB分散(リードレプリカ)
    • 非同期処理(キュー)
  • 可用性信頼性
    • 単一障害点
    • マルチAZ, リージョン
    • 障害分離(サーキットブレーカーなど)
  • 一貫性とトランザクション
    • ACIDとRDB
    • CAP定理(一貫性or可用性)
    • 分散トランザクション