Skip to main content

Learning Resources

This module is populated primarily from the local chunked books in library/raw/semester-07-architecture-ddd/books. External URLs are provided for canonical industry references that the guide cites directly. Use this page as a source map, not as an instruction to read everything.

Source Stack

BookRoleHow to use it in this module
Fundamentals of Software Architecture (Richards & Ford)Primary teaching sourceDefault escalation for every architecture style in Part II (Chapters 9-18)
Clean Architecture (Martin)Selective supportPackage-by-component, boundary discipline, and the dependency rule applied inside any style
Just Enough Software Architecture (Fairbanks)Peripheral framingUse only if you want an alternate framing of architecture as a risk-reduction activity
Learning Domain-Driven Design (Khononov)Selective supportUsed in Cluster 4 for context-to-service mapping; main DDD coverage lives in M03

Resource Map by Cluster

Cluster 1: The Layered and Pipeline Patterns

NeedBest local chunkWhy
Layered topology and layers of isolationRichards & Ford: Layered Architecture StyleCanonical introduction; includes the sinkhole anti-pattern
Adding layers trade-offRichards & Ford: Adding LayersWhen an additional layer is worth the indirection
Layered ratingsRichards & Ford: Layered RatingsStarting point for style-selection table
Pipeline filtersRichards & Ford: Pipeline (Filters)Filter roles: producer / transformer / tester / sink
Pipeline ratingsRichards & Ford: Pipeline RatingsComparison input for M01 characteristics
Layered-vs-components reframeMartin: Package by Layer to Ports and AdaptersAlternative decomposition axis

Cluster 2: Modular Monoliths and Component-Based

NeedBest local chunkWhy
Modularity overviewRichards & Ford: ModularityThe measure-first mindset
Cohesion and coupling mathRichards & Ford: Measuring Modularity (1)Cohesion types, coupling counts
Abstractness, instability, main sequenceRichards & Ford: Measuring Modularity (2)Zone of pain / zone of uselessness
Connascence taxonomyRichards & Ford: ConnascenceFiner-grained coupling analysis
Package by componentMartin: Package by ComponentComponent-level organization inside a monolith
Fitness functions introRichards & Ford: Fitness FunctionsThe enforcement-by-CI idea

Cluster 3: Service-Based and Event-Driven Styles

NeedBest local chunkWhy
Service-based topologyRichards & Ford: Service-Based TopologyCanonical structure
Database partitioning in service-basedRichards & Ford: DB PartitioningHow shared DB gets carved up
Service-based ratingsRichards & Ford: Service-Based RatingsWhy it scores well on simplicity
Event-driven styleRichards & Ford: Event-Driven StyleTopology and tradeoffs overview
Mediator topologyRichards & Ford: MediatorOrchestrator pattern
Async capabilitiesRichards & Ford: Async CapabilitiesEvent sourcing, data loss risks
Preventing data loss in EDARichards & Ford: Preventing Data LossPersistence, ack semantics
Request-reply over eventsRichards & Ford: Request-ReplySync-looking interactions on async substrate
Space-based styleRichards & Ford: Space-Based StyleIn-memory grid approach
Data collisionsRichards & Ford: Data CollisionsConflict resolution in replicated grids
Concert ticketing exampleRichards & Ford: Concert TicketingWorked example

Cluster 4: Microservices

NeedBest local chunkWhy
Microservices historyRichards & Ford: Microservices HistoryContext and the Lewis/Fowler canonical piece
Operational reuseRichards & Ford: Operational ReuseWhy platform is a prerequisite
Communication patternsRichards & Ford: CommunicationChoreography vs orchestration; sagas
Microservices ratingsRichards & Ford: Microservices RatingsDeploy/evolutionary high; performance low
Boundary disciplineMartin: Partitioning by Layer vs Use CaseCross-check on bounded-context sizing

Cluster 5: Choosing a Style

NeedBest local chunkWhy
Style-selection criteriaRichards & Ford: Choosing the Appropriate StyleThe canonical style-selection chapter
Distributed fallaciesRichards & Ford: Monolithic vs DistributedThe 8 fallacies, in detail
Ratings comparison across stylesVarious architecture-characteristics-ratings-* chunks aboveFor the style-comparison table

External Canonical References

These are industry-standard articles and docs that the guide cites directly. Prefer local chunks for depth; reach for these for canonical framing.

Microservices and Monoliths

Modular Monoliths and Boundary Enforcement

Pipeline and Integration

Distributed Computing Fallacies

Space-Based Architecture

Use Rules

  • If you are stuck on a specific style, go to the matching Richards & Ford chunk first.
  • Use Clean Architecture only when you need boundary discipline inside a chosen style (works at any granularity).
  • Use Fowler's articles for canonical framing and to sanity-check strong opinions.
  • Use Newman's and Richardson's material when you specifically need decomposition or microservices patterns.
  • Do not open a book or article unless you are stuck on a specific question. The concept pages are the main path.