Learning path
Fundamentals of Software Architecture learning path: everything to study, topic by topic
Master the core principles, patterns, and decision-making frameworks for designing scalable, maintainable software systems. Based on Ford & Richards' foundational work, covering architecture styles, characteristics, deployment, and evolution.
Short answer
To learn Fundamentals of Software Architecture, work through 6 modules and 26 topics in the order they build on each other. It starts with Architecture Foundations, then moves on to Architecture Characteristics and Architecture Patterns & Styles. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · Architecture Foundations4 topics
The Architect's Role & Responsibilities
Understanding the role of a software architect: responsibilities, expectations, and soft skills.
Objectives
- Define the role of a software architect
- Understand core responsibilities beyond coding
- Develop soft skills for architecture leadership
Key concepts
- architect definition
- responsibilities
- soft skills
- collaboration
What is Software Architecture?
Defining software architecture: structure, components, relationships, and guiding principles.
Objectives
- Define software architecture and its scope
- Understand architectural components and relationships
- Recognize the difference between architecture and design
Key concepts
- architecture definition
- structure
- components
- relationships
- principles
Thinking Like an Architect
Core thinking patterns: systems thinking, holistic analysis, and architectural mindset.
Objectives
- Apply systems thinking to architectural problems
- Think holistically about system design
- Consider constraints and context in architecture
Key concepts
- systems thinking
- holistic view
- context
- constraints
- trade-offs
Expectations of Architects in Organizations
What organizations expect from architects: impact, communication, technical depth, and business alignment.
Objectives
- Understand organizational expectations from architects
- Balance technical and business concerns
- Communicate architecture to diverse stakeholders
Key concepts
- business alignment
- technical depth
- communication
- impact
- cross-functional
2 · Architecture Characteristics4 topics
Architecture Characteristics (Ilities)
Defining non-functional characteristics: scalability, availability, reliability, maintainability, etc.
Objectives
- Define key architecture characteristics
- Distinguish between functional and non-functional requirements
- Identify critical ilities for a system
Key concepts
- ilities
- non-functional
- scalability
- availability
- reliability
- maintainability
Measuring Architecture Characteristics
Quantifying ilities: metrics, thresholds, SLOs, and observable characteristics.
Objectives
- Define measurable criteria for architecture characteristics
- Establish SLOs and performance thresholds
- Design metrics to track architectural health
Key concepts
- metrics
- SLO
- measurement
- thresholds
- observability
Architecture Ilities & Trade-offs
Managing trade-offs between competing ilities: cost vs. reliability, simplicity vs. feature richness.
Objectives
- Identify conflicting architecture characteristics
- Analyze trade-offs between competing ilities
- Make informed decisions on architectural priorities
Key concepts
- trade-offs
- competing concerns
- cost-benefit
- prioritization
How Architecture Decisions Impact Ilities
Understanding how architectural choices affect non-functional characteristics.
Objectives
- Predict impact of architectural decisions on ilities
- Understand cascading effects of architectural choices
- Evaluate decisions through the lens of characteristics
Key concepts
- decision impact
- cascading effects
- architectural choices
3 · Architecture Patterns & Styles7 topics
Layered Architecture Pattern
The most common pattern: horizontal layers, coupling, testability, and deployment considerations.
Objectives
- Understand the layered architecture pattern
- Recognize strengths and weaknesses of layered architecture
- Apply layered patterns to monolithic systems
Key concepts
- layers
- horizontal organization
- coupling
- testability
- CRUD operations
Pipeline Architecture Pattern
Processing pipelines and filters: ETL, data transformation, and functional composition.
Objectives
- Design pipeline and filter architectures
- Understand when pipelines are appropriate
- Manage data flow and transformations
Key concepts
- pipeline
- filters
- composition
- data transformation
- ETL
Microkernel (Plug-in) Architecture
Core kernel with plug-in modules: feature isolation, extensibility, and scalability.
Objectives
- Design microkernel architectures
- Implement plug-in discovery and loading
- Scale and deploy plug-in systems
Key concepts
- microkernel
- plug-ins
- extensibility
- feature isolation
- registry
Modular Monolith Architecture
Monolithic with strict module boundaries: independently deployable modules, domain-driven design.
Objectives
- Design modular monolithic systems
- Enforce module boundaries and dependencies
- Prepare monoliths for future microservices migration
Key concepts
- modularity
- bounded contexts
- module boundaries
- independence
- deployment
Microservices Architecture Style
Distributed services: autonomy, coupling, communication patterns, and operational complexity.
Objectives
- Understand microservices architecture principles
- Design service boundaries and contracts
- Manage distributed system challenges
Key concepts
- microservices
- service autonomy
- distributed systems
- communication
- resilience
Event-Driven Architecture
Asynchronous communication: mediator, broker topologies, event sourcing, and CQRS.
Objectives
- Design event-driven systems
- Choose between mediator and broker topologies
- Implement event sourcing and CQRS patterns
Key concepts
- event-driven
- asynchronous
- mediator
- broker
- event sourcing
- CQRS
Space-Based Architecture
Tuple spaces and in-memory caching: scalability for variable loads, elasticity.
Objectives
- Design space-based systems for high elasticity
- Manage in-memory data consistency
- Scale space-based architectures horizontally
Key concepts
- space-based
- tuple space
- in-memory
- scalability
- elasticity
- replication
4 · Architecture Decisions & Documentation4 topics
Architecture Decision Records (ADRs)
Documenting decisions: context, alternatives, rationale, and consequences.
Objectives
- Write effective Architecture Decision Records
- Capture context and alternatives for decisions
- Document rationale and long-term consequences
Key concepts
- ADR
- decision context
- alternatives
- rationale
- consequences
Documenting Software Architecture
Architecture diagrams, views, perspectives, and documentation standards (C4, UML).
Objectives
- Create clear architecture diagrams and views
- Apply C4 model for scalable documentation
- Choose appropriate visualization techniques
Key concepts
- diagrams
- C4 model
- views
- perspectives
- documentation standards
Risk Analysis & Management in Architecture
Identifying, evaluating, and mitigating architectural risks.
Objectives
- Identify architectural risks systematically
- Assess risk probability and impact
- Develop mitigation and contingency strategies
Key concepts
- risk identification
- risk assessment
- mitigation
- contingency planning
Architectural Decision-Making Frameworks
Structured approaches: evaluation matrices, cost-benefit analysis, scenario planning.
Objectives
- Apply structured decision-making frameworks
- Evaluate alternatives systematically
- Make defensible architectural decisions
Key concepts
- decision frameworks
- evaluation criteria
- cost-benefit
- scenario planning
5 · Deployment & DevOps4 topics
Deployment Topologies
Physical and logical deployment: on-premises, cloud, hybrid, and container orchestration.
Objectives
- Design appropriate deployment topologies
- Compare on-premises vs. cloud vs. hybrid approaches
- Plan for scalability and high availability
Key concepts
- deployment topology
- on-premises
- cloud
- hybrid
- orchestration
Cloud Architecture Considerations
Cloud-native principles: elasticity, resilience, multi-tenancy, cost optimization.
Objectives
- Apply cloud-native architectural principles
- Design for elasticity and resilience
- Optimize cloud costs and resource usage
Key concepts
- cloud-native
- elasticity
- resilience
- multi-tenancy
- cost optimization
Containers & Container Orchestration
Containerization: Docker, Kubernetes, service meshes, and operational concerns.
Objectives
- Design container-based deployments
- Understand Kubernetes orchestration patterns
- Manage container networking and service discovery
Key concepts
- containers
- Docker
- Kubernetes
- orchestration
- service mesh
Scalability Patterns & Strategies
Horizontal and vertical scaling: load balancing, caching, database sharding, and async processing.
Objectives
- Apply horizontal and vertical scaling strategies
- Design caching and data replication patterns
- Implement asynchronous processing for scalability
Key concepts
- scalability
- horizontal scaling
- caching
- sharding
- async processing
6 · Evolution & Governance3 topics
Evolutionary Architecture
Designing for change: modular boundaries, contract testing, continuous deployment.
Objectives
- Design architectures that evolve gracefully
- Apply incremental architectural refactoring
- Implement contract-based testing for system evolution
Key concepts
- evolutionary design
- modularity
- contract testing
- incremental change
Fitness Functions & Governance
Defining architectural health: automated fitness functions, governance rules, and continuous validation.
Objectives
- Define fitness functions for architecture
- Implement automated architectural governance
- Validate architecture continuously
Key concepts
- fitness functions
- governance
- metrics
- automated validation
- health
Organizational Alignment & Conway's Law
Architecture and organization structure: Conway's Law, team topology, and organizational design.
Objectives
- Apply Conway's Law to organizational design
- Align architecture with organizational structure
- Design team topologies for architectural goals
Key concepts
- Conway's Law
- team topology
- organizational structure
- alignment
- communication paths
Levels: Junior, Mid, Senior, and Expert
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying Fundamentals of Software Architecture?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying Fundamentals of Software Architecture?
Start with Architecture Foundations: The Architect's Role & Responsibilities, What is Software Architecture?, and Thinking Like an Architect. The map orders topics by what they depend on, so each one prepares the next.
How long does a full Fundamentals of Software Architecture assessment take?
A full assessment of this path takes about 60 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.