liveBook · Manning

Constraint

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

A constraint is a limitation or condition that restricts the available choices or outcomes in a business or software context.

A constraint is a restriction in the problem space that limits what a command can do. It turns an abstract business need into a condition the team must respect. section 2.3.2 section 2.1

Surface constraints while exploring business problems instead of jumping directly to feature solutions. Teams can represent them in EventStorming, then investigate their concrete cases with Example Mapping. section 2.1 section 2.3.3

Use a constraint to ask practical questions about a decision:

  • What must be true before the command succeeds? section 2.3.2
  • Which outcomes are possible, and which condition prevents each alternative? section 2.3.3
  • Can the condition be expressed as a concrete example or acceptance criterion? section 2.3.3
  • Would stakeholders understand another label, such as business rule? section 2.3.2

Reserving cinema seats

A Reserve Seats command can produce Seats Reserved or No available seats found. Example Mapping explores why: one ticket cannot occupy more than one seat, and a single reservation may require adjacent seats. Discussing concrete cases exposes further rules and acceptance criteria. section 2.3.3

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

How deep it goes
Defines restrictions, shows their EventStorming notation, and works through seat-reservation examples without detailing implementation.
Examples
Uses cinema seat reservation, unavailable seats, one-ticket-per-seat, adjacent-seat requirements, and concrete Example Mapping cases.
What it assumes
Assumes a business problem and a command or decision to examine; treats Example Mapping as usable without prior EventStorming.
What you can do after
Apply it via EventStorming and Example Mapping to expose restrictions, discuss alternatives, and record acceptance criteria.
How it connects
Connects constraints with EventStorming, Example Mapping, commands, domain events, business rules, and acceptance criteria.

Also explained in

Compare how 19 books explain constraint →

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.