PlantUML シーケンス図: 非同期メッセージキュー

PlantUMLで非同期メッセージングパターンを描画。イベント駆動アーキテクチャ、メッセージキュー、Pub/Subシステムをシーケンス図でモデル化。

Sequence Diagrams

詳細な説明

PlantUMLでの非同期メッセージングパターン

モダンなシステムはメッセージキューとイベント駆動パターンを広く使用しています。PlantUMLシーケンス図はこれらの非同期インタラクションを明確にモデル化できます。

基本的な非同期パターン

@startuml
title イベント駆動注文処理

participant "Order API" as API
queue "Message Queue" as MQ
participant "Payment Service" as Pay
participant "Inventory Service" as Inv
participant "Email Service" as Email

API ->> MQ: OrderCreatedイベントを公開
MQ ->> Pay: OrderCreatedを消費
MQ ->> Inv: OrderCreatedを消費
Pay ->> MQ: PaymentProcessedを公開
MQ ->> Email: PaymentProcessedを消費
Email ->> Email: 確認メール送信
@enduml

Queueパーティシパントタイプ

メッセージブローカーにはパーティシパントタイプとしてqueueを使用します。非同期境界がすぐに視覚的にわかる独自のアイコンがレンダリングされます。

一方向矢印

非同期メッセージはファイア・アンド・フォーゲットです。送信者がレスポンスを待たないことを示すために開いた矢印(->>)を使用します。

並列処理

par 決済処理
  MQ ->> Pay: OrderCreated
  Pay ->> Pay: カード課金
else 在庫確認
  MQ ->> Inv: OrderCreated
  Inv ->> Inv: 在庫予約
end

parブロックは決済と在庫が同時に行われることを示し、これがイベント駆動アーキテクチャの主要な利点です。

デッドレターキュー

alt 処理成功
  Pay ->> MQ: PaymentSuccess
else 処理失敗(3回リトライ後)
  Pay ->> MQ: DLQに移動
  note right: 手動調査が必要
end

障害パスのモデル化はハッピーパスと同様に重要です。

ユースケース

イベント駆動マイクロサービスアーキテクチャの設計、KafkaやRabbitMQのトピックフローのドキュメント、CQRSやイベントソーシングパターンのチームへの説明、サードパーティメッセージブローカーとのシステム統合の計画。

試してみる — PlantUML Editor

フルツールを開く