コンテキストマップとは?
「境界づけられたコンテキスト」間の関係を俯瞰する地図。他のチーム(連携システム)との関係性を可視化する図。
アーキテクチャというよりはシステム間のコミュニケーションを表す図になります。組織間の問題を見つけ出せます。
システムの全体像や相互関係を把握することが可能です。
上流/下流
あるモデルの変更が他のモデルに与える影響のことを指します。
U(Upstream)
上流、「影響を与える側」です。図を書くときは上流を上にすると直感的に分かりやすくなります。
D(DownStream)
下流、「影響を受ける側」です。
パターン
組織的パターン
チームの関係を示す。
パートナーシップ
両者の利害が一致していて協力関係にある。このような状況では計画から連携試験まで共同でマネジメントを行う。チーム間のインターフェース部とともに検討し、最適な状態になるように発展させる。
別々の道
お互いに関与しない。コンテキスト間で統合を行いません。
順応者
上流側が下流側の要望に答えない場合。順応側が腐敗防止層を用意して受け入れる。
例
TwitterのAPIを利用するアプリがあった場合に、TwitterのAPIの仕様変更があった場合はアプリ側で対応するしかないためアプリ側は「順応者」になります。
顧客/供給者
上流側が供給者、下流側が顧客、上流側が下流側のサポートを確約。
例
APIもフロントエンドもどちらも同じ組織内で開発する場合が該当します。どちらかが一方的に仕様変更するのではなく共同して仕様変更する形となるでしょう。
統合パターン
データとプログラムの連携方法を示す。
共有カーネル
共有専用のドメインモデルをソースコードレベルで共有。複数ドメインが共通で使用するドメインモデルを構築してソースコードレベルで共有するパターン
巨大な泥団子
適切なサイズの「境界づけられたコンテキスト」分割を諦め、1つの大きな塊として使用、既存のシステムが大規模で複雑で分割が困難な場合はそうします。
公開ホストサービス
コンテキストにアクセスするためのサービス。最近ではREST形式のWebサービスが主流になっています。これを利用するサービスは複数存在していても問題ない。
公表された言語
コンテキスト内のモデルを示すための共通言語。最近ではJSONやXMLがよく利用されています。
腐敗防止層(ACL:Anti-Corruption Layer)
上流のドメインモデルの影響を受けないように、下流側で変換用のレイヤを用意する。
この記事へのコメントはありません。