# Component Dependency Graphs このディレクトリには、PhotonCloudプロジェクトのコンポーネント依存関係を可視化したGraphvizファイルが含まれています。 ## ファイル - `component-dependencies.dot` - 高レベルな依存関係図(レイヤー別) - `component-dependencies-detailed.dot` - 詳細な依存関係図(内部構造含む) ## 画像生成方法 Graphvizがインストールされている場合、以下のコマンドでPNG画像を生成できます: ```bash # 高レベルな依存関係図 dot -Tpng component-dependencies.dot -o component-dependencies.png # 詳細な依存関係図 dot -Tpng component-dependencies-detailed.dot -o component-dependencies-detailed.png # SVG形式(拡大縮小可能) dot -Tsvg component-dependencies.dot -o component-dependencies.svg dot -Tsvg component-dependencies-detailed.dot -o component-dependencies-detailed.svg ``` ## Graphvizのインストール ### NixOS ```bash nix-shell -p graphviz ``` ### Ubuntu/Debian ```bash sudo apt-get install graphviz ``` ### macOS ```bash brew install graphviz ``` ## 図の説明 ### 高レベルな依存関係図 (`component-dependencies.dot`) - **Infrastructure Layer** (青): ChainFire (分散KVストア), FlareDB (マルチモデルデータベース、FoundationDB風) - 基盤ストレージサービス - **Platform Layer** (オレンジ): IAM, Deployer - プラットフォームサービス - **Application Layer** (緑): 各種アプリケーションサービス - **Deployment Layer** (紫): NixOSモジュール、netboot、ISO、first-boot自動化 ### 詳細な依存関係図 (`component-dependencies-detailed.dot`) 各サービスの内部構造(クレート/モジュール)と、サービス間の依存関係を詳細に表示します。 **注意**: FlareDBは**FoundationDBのようなマルチモデルデータベース**として設計されています。分散KVストア(RocksDB + Raft)が基盤で、その上に複数のフロントエンドレイヤー(KV API、SQLレイヤーなど)を提供します。時系列データの保存には**NightLight**(Prometheus互換メトリクスストレージ)を使用します。 ## 凡例 - **青い実線**: ランタイム依存関係(直接使用) - **青い点線**: オプショナルな依存関係 - **オレンジの線**: サービス間の統合 - **紫の線**: デプロイメント/設定関連 - **赤い点線**: systemdの起動順序依存