Bounded Context

Strategic pattern to identify capabilties that can be managed independently

Common domain model

Consists of capability models from across the enterprise. There are multiple challenges associated with a common domain model.

  • Complexity - too many inter-leationships between domains makes it hard to interpret/understand
  • Ownership - each domain owned by a different expert, hence no clear ownership from wholistic perspective
  • Evolution - some domains change faster than others and it becomes difficult to achieve agility due to dependency on other domains.

Domain Driven Design addresses the problems with common domain model by breaking the domain into independent parts referred to as the Bounded Contexts

Bounded Context (BC)

Bounded = Limited to

Bounded = Within some kind of boundary

Independent = Free from outside control

Example

This illustration is for a domain model for a bank. The bounded contexts are de-marcated by way of various business capabilities in the bank.

bounded-context-bank-example

Characteristics of BC

  • Each BC represented with its OWN domain model

  • Domain model built for a BC applicable ONLY within its boundaries

  • Language used in BC does NOT suffer from Linguistic Challenges

UL & BC

Each bounded context has its own Ubiquitous Language that is meaningful only within that bounded context.

Bounded Context - Discovery

Leverage the existing assets. Partner with the Domain experts

  • Start with organization structure
  • Understand business expert’s responsibilities & key activities
  • Checkout the modules in existing applications

Do NOT get hung up on finding the perfect boundaries for the bounded contexts in your domain

bank-bc-example

Although, in the illustration above I am showing one bounded context per domain, keep in mind that Domain may be divided into one or more bounded contexts.