liveBook · Manning

Bounded context

As explained in Collaborative Software Design: How to facilitate domain modeling decisions

A bounded context is an explicit boundary within which a domain model and its language have consistent meanings.

A bounded context is an explicit boundary within which a domain model and its ubiquitous language have consistent meanings. It turns shared understanding of a complex domain into a model with clear limits, while allowing the model to evolve toward deeper insight. section 2.2.1

Find useful boundaries by iterating through the domain with practical heuristics:

  • Split according to language, departments, or actors. section 3.3.1
  • Begin with intuitive boundaries, then refine them as experience, heuristics, and understanding grow. section 3.3.1
  • Align boundaries around parts of the domain requiring different expertise and knowledge. section 9.5
  • Keep business logic that changes together inside the same boundary, and deploy what changes together. section 3.3.3

BigScreen's first boundaries

An EventStorm about purchasing cinema tickets provides input for design activities. Applying the natural-boundaries heuristics produces Movie Scheduling and Ticket Purchasing. Further iterations add Payments, reconsider Ticket Purchasing as Ticketing, and identify possible Price Calculation and Seat Allocations contexts.

A bounded context is not the same as a deployable unit. Several contexts may share one deployable unit, while one context may have multiple deployable units, although splitting one context increases the chance that dependent logic changes together. section 3.3.3

How Collaborative Software Design: How to facilitate domain modeling decisions covers it

How deep it goes
Explains boundary discovery through iterative heuristics and distinguishes linguistic boundaries from deployment boundaries.
Examples
Uses BigScreen's Movie Scheduling, Ticketing, Payments, Price Calculation, and Seat Allocations boundaries.
What it assumes
Assumes familiarity with domain modeling and collaborative discovery while teaching boundary heuristics from initial intuition.
What you can do after
Evaluate and design domain boundaries using language, expertise, change patterns, and EventStorming outputs.
How it connects
Connects bounded contexts to domain models, ubiquitous language, EventStorming, domain expertise, strategic design, and deployable units.

Also explained in

Compare how 2 books explain bounded context →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Collaborative Software Design: How to facilitate domain modeling decisions. The section links point to the parts of the book it draws on.