Fundamentals of Software Architecture — Study Notes

Comprehensive notes for Richards & Ford’s Fundamentals of Software Architecture: A Modern Engineering Approach (2nd Edition, 2025) — the definitive guide to software architecture styles, characteristics, decision-making, and the soft skills required to be an effective architect.

Book Details

  • Title: Fundamentals of Software Architecture: A Modern Engineering Approach
  • Author(s): Mark Richards and Neal Ford
  • Published: March 2025 (2nd Edition)
  • Focus: Practical architecture — styles, characteristics, decision-making, team dynamics, and architectural thinking
  • Style: Practical engineering with theory grounding
  • Total Chapters: 27 (+ Appendix)
  • Notes Status: Complete as of 2026-05-29

What’s New in the 2nd Edition

ChangeDetails
New Chapter 11The Modular Monolith Architecture Style (new style, not in 1st edition)
New Chapter 20Architectural Patterns (Reuse, CQRS, Orchestration vs Choreography)
New Chapter 26Architectural Intersections (Architecture & data, teams, GenAI, enterprise)
New Chapter 27The Laws of Software Architecture, Revisited (new corollary + new law)
Updated Part IIAll style chapters now include: Data Topologies, Cloud Considerations, Team Topology, Governance sections
Star ratings updatedNew categories added to architecture characteristics ratings
Ch15 expandedEvent-Driven Architecture — major additions (Derived Events, Swarm of Gnats, Mediated EDA)
Ch18 expandedMicroservices — major additions (Choreography/Orchestration, Sagas, Data Topologies)

Chapter List

#Chapter TitleKey ConceptsStatus
01IntroductionArchitecture definition, Laws, Architect expectations, Roadmap🟩
02Architectural ThinkingDesign vs Architecture, Technical breadth, Trade-offs, 20-Minute Rule🟩
03ModularityCohesion, Coupling, Connascence, Core metrics, Distance from Main Sequence🟩
04Architectural Characteristics Defined”-ilities”, Operational/Structural/Cross-cutting characteristics, Trade-offs🟩
05Identifying Architectural CharacteristicsDomain concerns, Katas, Explicit vs implicit, Limiting/prioritizing🟩
06Measuring and Governing CharacteristicsFitness functions, Operational/Structural/Process measures, Governance🟩
07The Scope of Architectural CharacteristicsArchitectural quanta, Synchronous communication, Scoping, Cloud🟩
08Component-Based ThinkingLogical components, Static/Temporal coupling, Law of Demeter, Discovery🟩
09Architecture Styles FoundationsStyles vs Patterns, Big Ball of Mud, Client/Server, 8 Fallacies, Monolith vs Distributed🟩
10Layered Architecture StyleTopology, Layers of isolation, Data topologies, Governance, When to use🟩
11Modular Monolith Architecture StyleTopology, Module communication, Data topologies, Cloud, Governance🟩
12Pipeline Architecture StyleFilters, Pipes, Topology, Governance, When to use🟩
13Microkernel Architecture StyleCore system, Plug-ins, Registry, Contracts, Governance🟩
14Service-Based Architecture StyleService granularity, API gateway, Data topologies, Cloud🟩
15Event-Driven Architecture StyleBroker/Mediator topology, Events vs Messages, Derived Events, Error handling, Sagas🟩
16Space-Based Architecture StyleProcessing units, Virtualized middleware, Data grid, Data pump, Governance🟩
17Orchestration-Driven SOATaxonomy, Reuse vs coupling, Enterprise service bus, Data topologies🟩
18Microservices ArchitectureBounded context, Granularity, Data isolation, Choreography, Sagas🟩
19Choosing the Appropriate Architecture StyleDecision criteria, Fashion vs fundamentals, Case studies🟩
20Architectural PatternsReuse patterns, CQRS, Orchestration vs Choreography, Broker-Domain🟩
21Architectural DecisionsADRs, Decision antipatterns, Architectural significance, LLMs in decisions🟩
22Analyzing Architecture RiskRisk matrix, Risk storming, Risk assessments, User-story risk analysis🟩
23Diagramming ArchitectureUML, C4, ArchiMate, Tools, Diagram guidelines🟩
24Making Teams EffectiveCollaboration, Architect personalities, Team warning signs, Checklists🟩
25Negotiation and Leadership SkillsNegotiation tactics, 4 Cs of Architecture, Leading by example🟩
26Architectural IntersectionsArchitecture & implementation, infrastructure, data, team topologies, GenAI🟩
27The Laws of Software Architecture, RevisitedTrade-off law, Why > How law, New corollaries🟩

Directory Structure

FSA-Notes/
├── README.md                          # This file
│
├── chapters/                          # Chapter notes files
│   ├── ch01-introduction.md
│   ├── ch02-architectural-thinking.md
│   ├── ch03-modularity.md
│   ├── ch04-architectural-characteristics-defined.md
│   ├── ch05-identifying-architectural-characteristics.md
│   ├── ch06-measuring-and-governing-characteristics.md
│   ├── ch07-scope-of-architectural-characteristics.md
│   ├── ch08-component-based-thinking.md
│   ├── ch09-architecture-styles-foundations.md
│   ├── ch10-layered-architecture.md
│   ├── ch11-modular-monolith-architecture.md
│   ├── ch12-pipeline-architecture.md
│   ├── ch13-microkernel-architecture.md
│   ├── ch14-service-based-architecture.md
│   ├── ch15-event-driven-architecture.md
│   ├── ch16-space-based-architecture.md
│   ├── ch17-orchestration-driven-soa.md
│   ├── ch18-microservices-architecture.md
│   ├── ch19-choosing-architecture-style.md
│   ├── ch20-architectural-patterns.md
│   ├── ch21-architectural-decisions.md
│   ├── ch22-analyzing-architecture-risk.md
│   ├── ch23-diagramming-architecture.md
│   ├── ch24-making-teams-effective.md
│   ├── ch25-negotiation-and-leadership.md
│   ├── ch26-architectural-intersections.md
│   └── ch27-laws-revisited.md
│
└── flashcards/                        # Obsidian spaced repetition flashcards
    ├── ch01-flashcards.md
    ├── ch02-flashcards.md
    ├── ch03-flashcards.md
    ├── ch04-flashcards.md
    ├── ch05-flashcards.md
    ├── ch06-flashcards.md
    ├── ch07-flashcards.md
    ├── ch08-flashcards.md
    ├── ch09-flashcards.md
    ├── ch10-flashcards.md
    ├── ch11-flashcards.md
    ├── ch12-flashcards.md
    ├── ch13-flashcards.md
    ├── ch14-flashcards.md
    ├── ch15-flashcards.md
    ├── ch16-flashcards.md
    ├── ch17-flashcards.md
    ├── ch18-flashcards.md
    ├── ch19-flashcards.md
    ├── ch20-flashcards.md
    ├── ch21-flashcards.md
    ├── ch22-flashcards.md
    ├── ch23-flashcards.md
    ├── ch24-flashcards.md
    ├── ch25-flashcards.md
    ├── ch26-flashcards.md
    └── ch27-flashcards.md

How to Use These Notes

  1. Read the chapter notes file (~30-60 min per chapter)

    • Foundation chapters (Parts I & III): focus on concepts, trade-off tables, and antipatterns
    • Architecture style chapters (Part II): study the topology diagram + characteristics ratings table
    • Use the “When to Use / When Not to Use” sections as your quick reference for style selection
  2. Review the flashcard file (~15-20 min per chapter)

    • Add to Obsidian with Spaced Repetition plugin
    • Priority: HIGH chapters first (see flashcard footers)
  3. Practice architecture style selection

    • Use Ch19 (Choosing Architecture Style) as your master decision guide
    • Practice the Silicon Sandwiches and Going Going Gone katas

Study Path Recommendations

1-Week Sprint (Interview imminent)

  • Day 1: Ch1 (Introduction), Ch2 (Architectural Thinking) — what architects do
  • Day 2: Ch4 (Characteristics Defined), Ch5 (Identifying Characteristics) — what to design for
  • Day 3: Ch9 (Style Foundations), Ch19 (Choosing Styles) — style selection mental model
  • Day 4: Ch10, Ch11, Ch14, Ch18 (Layered, Modular Monolith, Service-Based, Microservices)
  • Day 5: Ch15 (Event-Driven), Ch16 (Space-Based) — advanced distributed styles
  • Day 6-7: Ch21 (Decisions/ADRs), Ch3 (Modularity), flashcard review

1-Month Plan (Solid preparation)

  • Week 1: Ch1-8 (Foundations — Part I)
  • Week 2: Ch9-14 (Architecture Styles — monolithic spectrum)
  • Week 3: Ch15-20 (Architecture Styles — distributed spectrum + patterns)
  • Week 4: Ch21-27 (Techniques & Soft Skills — Part III) + full flashcard review

3-Month Deep Study (Long-term mastery)

  • Month 1: Part I (Ch1-8) — deep study of all foundation concepts
  • Month 2: Part II (Ch9-20) — implement small examples of each style
  • Month 3: Part III (Ch21-27) + architect katas from the appendix

Key Themes

  1. Everything is a trade-off: The First Law of Software Architecture — there are no right or wrong answers, only trade-offs
  2. Why > How: The Second Law — documenting why a decision was made matters more than how it was implemented
  3. Architecture characteristics drive style selection: The “-ilities” (scalability, agility, testability, etc.) are the primary selection criteria for architectural styles
  4. Coupling is the enemy: Both at the component level (connascence) and the service level (operational/temporal coupling)
  5. Fitness functions enforce architecture: Governance through automated tests, metrics, and architecture fitness functions, not just documentation

Comparison with Other Books in This Workspace

AspectFSA (Richards & Ford)DDIA (Kleppmann)SDI (Alex Xu)
FocusArchitecture styles & architect roleData systems & distributed theorySystem design interview prep
StylePractical engineering with theoryAcademic, comprehensiveConversational, example-driven
Depth per topicDeep on styles, practical on skillsVery deep (distributed systems theory)Focused (10-20 pages/topic)
Primary useBecoming an architect, style selectionUnderstanding data fundamentalsPassing interviews
Best forMoving from dev to architect roleLong-term distributed systems masteryShort-term interview prep

Recommendation: Read FSA for architecture style selection and architect-role fundamentals; DDIA for deep distributed systems and data theory; SDI for interview-specific practice. These three books complement each other well.


Last Updated: 2026-05-29