photoncloud-monorepo/docs/README-dependency-graphs.md

2.5 KiB
Raw Blame History

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レイヤーなどを提供します。時系列データの保存にはNightLightPrometheus互換メトリクスストレージを使用します。

凡例

  • 青い実線: ランタイム依存関係(直接使用)
  • 青い点線: オプショナルな依存関係
  • オレンジの線: サービス間の統合
  • 紫の線: デプロイメント/設定関連
  • 赤い点線: systemdの起動順序依存