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

64 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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の起動順序依存