2.5 KiB
2.5 KiB
Component Dependency Graphs
このディレクトリには、PhotonCloudプロジェクトのコンポーネント依存関係を可視化したGraphvizファイルが含まれています。
ファイル
component-dependencies.dot- 高レベルな依存関係図(レイヤー別)component-dependencies-detailed.dot- 詳細な依存関係図(内部構造含む)
画像生成方法
Graphvizがインストールされている場合、以下のコマンドでPNG画像を生成できます:
# 高レベルな依存関係図
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
nix-shell -p graphviz
Ubuntu/Debian
sudo apt-get install graphviz
macOS
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の起動順序依存