【コレオグラフィ】

コレオグラフィ とは?

💡 指揮者なしで踊るダンサーたち——各自がビートに合わせて動くアーキテクチャ
📌 このページのポイント
コレオグラフィ(指揮者なしのイベント連携) 注文サービス Order Service 注文済 在庫サービス Inventory Service 在庫確保 決済サービス Payment Service 課金完了 通知 SVC 各サービスはイベントをパブリッシュし、次のサービスがそれをサブスクライブして自律的に動く コレオグラフィの特徴 中央指揮者なし・疎結合・スケールしやすい 注意点 全体フローが分散して追跡が難しい
コレオグラフィ:指揮者なしで各サービスがイベントを受け取って自律的に連携する
ひよこ ひよこ

コレオグラフィって踊りのこと?ITでも使うんだね。

ペンギン先生 ペンギン先生

そうなんだよ。マイクロサービスの連携方法の一つで、各サービスがイベントに反応して自律的に動く仕組みをダンスの振り付けに例えているんだ。

ひよこ ひよこ

指揮者なしってどういうこと?誰も全体を管理しないの?

ペンギン先生 ペンギン先生

うん、例えば「注文が入った」イベントが発行されると、在庫サービスが反応して在庫を減らし、次に「在庫確保済み」イベントを出して決済サービスが動く、という連鎖になるんだよ。誰かが「次は決済して」と命令するんじゃなくてイベントで繋がっていくんだね。

ひよこ ひよこ

それってオーケストレーションパターンと何が違うの?

ペンギン先生 ペンギン先生

オーケストレーションは中央の指揮者(オーケストレーター)が「在庫サービスよ、確保して」「決済サービスよ、処理して」と順番に指示を出すパターンだよ。コレオグラフィはその指揮者がいないんだね。

ひよこ ひよこ

指揮者がいないほうが良さそうだけど、デメリットはないの?

ペンギン先生 ペンギン先生

デメリットもあるよ。全体のフローがコードの中に散らばるから「今どこまで処理が進んでいるか」が追いにくくなるんだ。障害調査やデバッグが複雑になりやすいのが欠点だね。

ひよこ ひよこ

どんな場面でコレオグラフィを選ぶといいの?

ペンギン先生 ペンギン先生

サービスの追加・変更が多い場合や、一つのサービスがボトルネックになるのを避けたい場合に向いているよ。SAGAパターンと組み合わせて使うことも多いんだね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「コレオグラフィ」って出てきたら「指揮者なしでイベントで連携するマイクロサービスパターン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Choreography」 = 振り付け・コレオグラフィ
💬 ダンスの「振り付け(Choreography)」が語源で、指揮者が指示するのではなく各ダンサーが決められた振り付けに従って自律的に動くイメージだよ
← 用語集にもどる