Screaming Architecture
E679173
Screaming Architecture is a software design approach that emphasizes organizing code so that the system’s core business domain and use cases are immediately evident from its structure.
Statements (49)
| Predicate | Object |
|---|---|
| instanceOf | software architecture style ⓘ |
| aimsToAvoid |
architecture that hides business intent
ⓘ
architecture that only reveals technical frameworks ⓘ |
| alsoKnownAs | Architecture That Screams the Domain NERFINISHED ⓘ |
| appliesTo |
backend applications
ⓘ
enterprise applications ⓘ microservices ⓘ |
| benefit |
better communication with non-technical stakeholders
ⓘ
clear mapping between business language and code ⓘ easier onboarding for developers ⓘ improved maintainability ⓘ reduced coupling to frameworks ⓘ |
| contrastsWith |
layered architecture organized by technical concerns
ⓘ
package-by-layer organization ⓘ package-by-technical-component organization ⓘ |
| corePrinciple |
architecture should tell you what the system does
ⓘ
domain concepts should be top-level structural elements ⓘ use cases should be first-class citizens in the codebase ⓘ |
| deemphasizes |
framework-specific layers
ⓘ
infrastructure details in top-level structure ⓘ |
| describedIn | blog posts by Robert C. Martin ⓘ |
| designConcern |
dependency direction
ⓘ
module boundaries ⓘ package structure ⓘ |
| discourages |
framework-driven package structure
ⓘ
grouping code primarily by technical layers ⓘ |
| emphasizes |
making the domain model prominent
ⓘ
organizing code by business domain ⓘ organizing code by use cases ⓘ |
| focusesOn |
business rules
ⓘ
use-case level behavior ⓘ |
| goal |
align code structure with business language
ⓘ
improve understandability of system purpose ⓘ make the system’s core business domain evident from its structure ⓘ |
| hasCreator | Robert C. Martin NERFINISHED ⓘ |
| influencedBy |
Clean Architecture principles
ⓘ
Domain-Driven Design strategic design ⓘ |
| organizesBy |
application use cases
ⓘ
business capabilities ⓘ domain subdomains ⓘ |
| originatedIn | 2010s ⓘ |
| promotes |
separation of domain and infrastructure
ⓘ
ubiquitous language in code structure ⓘ |
| relatedTo |
Clean Architecture
NERFINISHED
ⓘ
Domain-Driven Design NERFINISHED ⓘ hexagonal architecture ⓘ onion architecture ⓘ |
| typicalStructure |
modules representing use cases or application services
ⓘ
packages named after domain concepts ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.