System Design について
Solution Architect Agent 向けのシステム設計スキルです。アーキテクチャパターン、品質特性、API とデータベースの選択、設計文書を扱い、上位・下位設計などの成果物作成を支援します。
主な機能
- 01モノリスやマイクロサービスなどの比較
- 02スケーラビリティと信頼性の検討
- 03REST、GraphQL、gRPC の選択肢
- 04リレーショナルと NoSQL の区別
- 05C4 と ADR の文書化
- 06HLD、LLD などの成果物一覧
活用シーン
- 01新規システムのパターン選定
- 02可用性とセキュリティの評価
- 03API とデータベース方針の計画
- 04設計文書と決定記録の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ danhvb/ my-ba-skills --skill system-designインストール後、Claude Code で/system-designを入力して読み込まれたか確認します。
詳細
システム設計スキル
目的
ソリューションアーキテクトエージェントが、適切なパターン、テクノロジー、統合戦略を選択し、ソフトウェアシステムの高レベルな構造を設計できるようにします。
アーキテクチャパターン
1. モノリシック
- ユースケース:小規模なスタートアップ、シンプルなドメイン、初期開発の迅速化。
- メリット:デプロイがシンプルで、デバッグが容易です。
- デメリット:スケーラビリティに限界があり、密結合になります。
2. マイクロサービス
- ユースケース:複雑なエンタープライズ、明確に分かれたドメイン、個別のスケーリング。
- メリット:サービスごとにテクノロジースタックを選択でき、スケーラブルです。
- デメリット:分散システムの複雑さ、ネットワーク遅延、データ整合性の問題があります。
3. イベント駆動型
- ユースケース:リアルタイムのインタラクション、高い疎結合性。
- コンポーネント:プロデューサー、コンシューマー、イベントバス(Kafka、RabbitMQ)。
4. サーバーレス
- ユースケース:イベントによってトリガーされる処理、負荷の変動が大きい場合。
- メリット:使用量に応じた課金で、インフラ管理が不要です。
主要な設計上の決定(「〜性」)
- スケーラビリティ:垂直(より大きなマシン)対水平(より多くのマシン)。
- 可用性:冗長化、フェイルオーバー戦略。ロードバランサー。
- 信頼性:サーキットブレーカー、リトライ、結果整合性。
- 保守性:クリーンコード、ドキュメント、モニタリング。
- セキュリティ:認証(OAuth)、認可(RBAC)、暗号化。
API 設計戦略
- REST:標準的なリソースベースの設計。
- GraphQL:柔軟なデータクエリ。
- gRPC:サービス間通信の高いパフォーマンス。
データベースの選択
- リレーショナル(SQL):構造化データ、ACID トランザクション(PostgreSQL、MySQL)。
- NoSQL(ドキュメント):柔軟なスキーマ、迅速な反復(MongoDB)。
- NoSQL(キー・バリュー):キャッシュ、大量の読み書き(Redis、DynamoDB)。
- 時系列:IoT、金融データ(InfluxDB)。
アーキテクチャのドキュメント化
- C4 モデル:コンテキスト、コンテナー、コンポーネント、コード。
- ADR(Architecture Decision Records):決定に至った理由を記録します。
成果物
- ハイレベル設計(HLD)ドキュメント。
- ローレベル設計(LLD)ドキュメント。
- データベーススキーマ(ERD)。
- API 仕様(Swagger/OpenAPI)。
コメント
Markdown 対応