Skip to content

Modular Design Decision Examples

Positive example — cohesive feature boundary

  • Context: validation, state transition, and presentation for one capability change together.
  • Mode: feature-oriented.
  • Decision: keep them under one feature boundary with a focused external contract and hidden state details.
  • Why it fits: ownership and coordinated change are visible while consumers know little.
  • Rejected alternative: distribute each concern into repository-wide technical layers.

Negative example — service per noun

  • Context: a small application has cohesive modules and one deployment lifecycle.
  • Mode: service-oriented was proposed without operational evidence.
  • Bad decision: create an independently communicating service for each domain noun.
  • Why it fails: network and operational coupling replace simple in-process collaboration.
  • Better decision: retain module boundaries until deployment, ownership, scaling, or isolation requires more.