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.

Jump to: Statements Referenced by

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.

Clean Architecture influencedBy Screaming Architecture