リレーションシップ - Archyl Docs

アーキテクチャ要素間のリレーションシップの作成とスタイリング方法

リレーションシップ

リレーションシップは、アーキテクチャ要素がどのように通信、依存、または相互作用するかを示します。アーキテクチャドキュメントの重要な部分です。

リレーションシップの作成

ドラッグ&ドロップ

  1. ソース要素にカーソルを合わせる
  2. 接続ポイント(小さな円)からクリック&ドラッグ
  3. ターゲット要素にドロップ
  4. リレーションシップが自動的に作成される

コンテキストメニュー

  1. ソース要素を右クリック
  2. 「リレーションシップを作成」を選択
  3. ターゲット要素をクリック

リレーションシップのプロパティ

ラベル

ラベルはリレーションシップが何を表すかを説明します:

  • 「注文を送信する」
  • 「データを読み取る」
  • 「認証に使用する」
  • 「デプロイする」

ベストプラクティス:

  • 能動態を使用
  • 何が流れるかを具体的に
  • 簡潔に

技術

オプションで技術やプロトコルを指定:

  • 「REST/HTTPS」
  • 「gRPC」
  • 「AMQP」
  • 「SQL/TCP」
  • 「WebSocket」

方向

リレーションシップには矢印で示される方向があります:

  • 単方向: 一方向の通信(最も一般的)
  • 双方向: 双方向の通信

リレーションシップのスタイリング

線のスタイル

  • 実線: 直接的な依存関係または通信
  • 破線: オプションまたは非同期通信

色でリレーションシップを分類:

  • 青: データフロー
  • 緑: 正常系パス
  • 赤: エラーハンドリング
  • グレー: オプション

曲線 vs 直線

  • 曲線: 複雑なダイアグラムに適し、重なりを回避
  • 直線: シンプルなダイアグラムにすっきり

一般的なパターン

リクエスト-レスポンス

Web App --"APIコールを実行 [REST/HTTPS]"--> APIサーバー

イベント駆動

Order Service --"イベントを発行 [AMQP]"--> メッセージキュー
Notification Service <--"イベントをサブスクライブ [AMQP]"-- メッセージキュー

データベースアクセス

APIサーバー --"データの読み書き [SQL/TCP]"--> データベース

外部API

Payment Service --"支払い処理 [REST/HTTPS]"--> Stripe API

レベル間のリレーションシップ

コンポーネントレベルで表示する際、リレーションシップは異なるコンテナ間にまたがることができます:

  • コンポーネントはシステムの他の部分のコンテナに接続可能
  • 現在のビューを離れずに全体像を把握するのに役立つ

ヒント

接続しすぎない

すべての可能なリレーションシップを表示する必要はありません。以下に集中:

  • 主要なデータフロー
  • 重要な依存関係
  • 自明でない接続

関連するリレーションシップのグループ化

複数の要素が同じ方法で通信する場合:

  • 仲介者(APIゲートウェイ、メッセージキュー)の使用を検討
  • オーバーレイでグループ化

ラベルを読みやすく保つ

  • ラベルが重ならないように配置
  • よりすっきりしたダイアグラムには短いラベル
  • 詳細は代わりに要素の説明に追加