境界づけられたコンテキスト(Bounded Context)は、ある業務用語とモデルが同じ意味を持つ範囲です。

同じ言葉でも意味が違う
ECサイトの「顧客」を考えます。
| コンテキスト | 「顧客」の意味 |
|---|---|
| 販売 | 商品を選び、注文する人 |
| 請求 | 支払い義務を持つ相手 |
| サポート | 問い合わせを行う利用者 |
1つの巨大なCustomerへまとめず、領域ごとにモデルを持ちます。境界を越えるときに必要な情報だけを変換します。
境界内では、業務担当者と開発者が同じ言葉を同じ意味で使います。この共有語彙がユビキタス言語です。
境界を見つける手掛かり
- 同じ言葉の意味を部署ごとに説明し直している
- 変更理由や業務ルールが異なる
- データの責任者や更新タイミングが異なる
- 片方の詳細を、もう片方が知らなくても仕事が成立する
DBテーブルやサービス数から先に決めず、業務上の意味と変更理由から探します。Bounded Contextとマイクロサービスは同義ではありません。
Context Map
Context Mapは、コンテキスト間の関係を示す図です。最初は次だけで十分です。
販売 ── 注文確定情報 ──> 請求
販売 <── 在庫可否 ───── 倉庫
各矢印について、提供側、利用側、データ、同期方法、変換場所を決めます。
まとめ
- 言葉とモデルの意味が一貫する範囲がBounded Context
- 同語異義や変更理由の違いが、境界を見つける手掛かり
- 境界間では共通モデルを強制せず、必要な情報を変換する
- Context Mapで提供側・利用側・連携データを可視化する
DDD全体はドメイン駆動設計(DDD)、配置単位との違いはマイクロサービスアーキテクチャで説明します。