API設計
API設計は、インターフェース・バージョニング・リソースモデリングで構成されるスキル領域です。
インターフェースを、エラーレスポンスの情報設計・HTTPメソッドの使い分け・レスポンス形式の一貫性の観点で評価します。
バージョニングを、非推奨化プロセスの設計・戦略の選択と適用の観点で評価します。
リソースモデリングを、リソースの粒度設計・リソースの階層構造設計の観点で評価します。
アーキテクチャ
アーキテクチャは、境界設計・分散トランザクション・サービス間通信・リアルタイム通信・システム構成選択で構成されるスキル領域です。
サービス間通信を、同期通信の適切な設計の観点で評価します。
システム構成選択を、アーキテクチャパターンの適切な選択の観点で評価します。
リアルタイム通信を、コネクション管理の設計・WebSocket通信の適切な設計の観点で評価します。
境界設計を、適切な粒度での分割・データ所有権に基づく分離・ビジネスドメインに基づくサービス分割の観点で評価します。
分散トランザクションを、補償トランザクションの設計・冪等性の設計・Sagaパターンの適切な適用の観点で評価します。
スケーラビリティ
スケーラビリティは、非同期処理・イベント駆動設計・地理分散・水平スケーリング・負荷分散で構成されるスキル領域です。
イベント駆動設計を、イベントソーシングパターンの適用の観点で評価します。
水平スケーリングを、オートスケーリングの設計・読み書き分離・シャーディングの設計・ステートレス設計の観点で評価します。
地理分散を、CDNの適切な活用・データローカリティの考慮・マルチリージョン設計の観点で評価します。
非同期処理を、バックプレッシャーの処理・メッセージキューの設計・Pub/Subパターンの設計の観点で評価します。
負荷分散を、レイヤーに応じた負荷分散・アルゴリズムの選択の観点で評価します。
データ設計
データ設計は、キャッシュ戦略・データモデリング・データストア選択で構成されるスキル領域です。
キャッシュ戦略を、キャッシュ無効化戦略・分散キャッシュの設計の観点で評価します。
データストア選択を、高頻度読み書きへのNoSQL適用・オブジェクトストレージの活用・関連性のあるデータへのRDB適用の観点で評価します。
データモデリングを、正規化/非正規化の適切な判断・スキーマの適切な設計の観点で評価します。
信頼性
信頼性は、可用性・一貫性・障害耐性・可観測性・セキュリティで構成されるスキル領域です。
セキュリティは、認証・認可で構成されるスキル領域です。
一貫性を、コンフリクト解決戦略・モデルの選択の観点で評価します。
可観測性を、ログ設計・モニタリング設計の観点で評価します。
可用性を、ヘルスチェック設計・冗長化設計・レプリケーション設計の観点で評価します。
障害耐性を、サーキットブレーカーパターンの適用・グレースフルデグラデーション・リトライ機構の設計の観点で評価します。