liveBook · Manning

System boundary

As explained in Architecture Modernization: Socio-technical alignment of software, strategy, and structure

A boundary is a defined partition that separates a coherent area of domain behavior, responsibility, or model from other areas.

A system boundary separates a coherent area of business behavior from other areas. In domain modeling, domains and subdomains provide candidate boundaries for teams and software. A useful boundary groups concepts that tend to change together, so a new feature is less likely to require coordinated changes across several teams or codebases. The goal is not to eliminate every dependency, but to decide which dependencies are worth avoiding and which are too costly to remove. section 9.5 section 9.0

Boundaries serve organizational goals; there is no universally correct partition. The same concepts may be grouped by different characteristics, and each grouping favors different kinds of change. A boundary that supports independent product decisions might duplicate capabilities or make the experience across products less consistent. A shared capability might improve reuse while creating new dependencies. Compare plausible models against the outcomes sought rather than adopting the first tidy diagram. section 9.2.1 section 9.2.4

A boundary changes with the goal

The BBC initially aligned high-level domains with services such as news, sport, weather, and education. Those services had developed independently, but similar features were implemented repeatedly and the experience across services was not as consistent as it could be. Its WebCore initiative identified horizontal domains including Articles, Search, and Topics to support a different balance of shared capabilities and product independence. section 9.2.5

To explore boundaries collaboratively, use EventStorming to map business events and journeys, then partition the map into candidate domains and subdomains. Include domain experts alongside product, design, and software perspectives so that assumptions and terminology can be challenged. Treat the resulting partitions as proposals: investigate promising areas in more focused workshops and test them with other perspectives, such as Domain Message Flow Modeling and Team Topologies. section 1.2.1 section 7.1.4

Figure 1.7 Using EventStorming to collaboratively identify domains and subdomains

A visual starting point for grouping parts of an EventStorming timeline into candidate domains and subdomains—not a rule that every process step needs its own boundary. section 1.2.1 section 9.4.4

Questions that help test a candidate boundary:

  • Which concepts and business rules are likely to change together? Would a typical feature require several teams to coordinate, integrate, and test changes? section 9.0 section 1.2.1
  • Does domain language change across contexts? The same person may be a Lead in Marketing, a Rider in Journeys, and a Reporter in Maintenance; the different meanings can signal distinct subdomains. section 9.3.2
  • Is a journey itself a subdomain, a subdomain that delegates some work, or a process composed of several subdomains? Do not equate a step on a timeline with a boundary automatically. section 9.4.4
  • What would centralization save, and what new dependency would it create for consumers? Test whether the owning team could respond to their needs. section 9.3.2

Grouping related but distinct work

In an airline modernization effort, EventStorming helped identify domains including Offer/Ordering, Redemption and Loyalty, Check-in & Boarding, and Trip Management. Offer/Ordering contained separate subdomains for offers, booking, and fulfillment: each could largely be owned independently, while their remaining coupling justified considering them together as one domain. The names came from terminology developed with stakeholders, not a generic technical taxonomy. section 9.3.4

Keep the design provisional. A high-level boundary can fail when detailed modeling reveals hidden dependencies; a subdomain can also grow beyond one team. Revisit domain, team, and software boundaries as those conditions emerge. Good boundaries help reduce coupling, but structure alone cannot substitute for sound priorities, sustainable practices, and learning. section 9.2.6 section 9.2.8 section 9.2.7

How Architecture Modernization: Socio-technical alignment of software, strategy, and structure covers it

How deep it goes
Develops goal-dependent trade-offs, discovery questions, collaborative mapping, and iterative validation; stops short of prescribing one correct partition.
Examples
Illustrates changing boundaries through BBC WebCore, airline domain decomposition, and alternative ways to model an onboarding journey.
What it assumes
Assumes familiarity with teams and software change while developing domain modeling through collaborative investigation rather than requiring a predefined architecture.
What you can do after
Practice/perform collaborative boundary discovery, compare candidate partitions, and revisit them when hidden dependencies or growth change the trade-offs.
How it connects
Connects domain boundaries to subdomains, change coupling, EventStorming, independent value streams, Team Topologies, and software architecture.

Also explained in

Compare how 5 books explain system boundary →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Architecture Modernization: Socio-technical alignment of software, strategy, and structure. The section links point to the parts of the book it draws on.