Skip to main content

Learning path

Software Architecture Fundamentals learning path: everything to study, topic by topic

Comprehensive assessment covering software architecture thinking, patterns, quality attributes, distributed systems design, architectural decision-making, and architecture leadership. Covers foundational principles through expert-level evolutionary architecture and technology strategy.

Short answer

To learn Software Architecture Fundamentals, work through 6 modules and 26 topics in the order they build on each other. It starts with Architecture Foundations, then moves on to Architectural Patterns and Quality Attributes. Use the map as a checklist, or measure your level and study only what is missing.

6
modules
26
topics
60
min to assess

What you will study

Topics are grouped by module. Open one to see its objectives and key concepts.

1 · Architecture Foundations5 topics
  • Architectural Thinking

    Understanding the role of software architecture, the distinction between design and architecture, and how to reason about structure, behavior, and cross-cutting concerns at scale.

    Objectives

    • Articulate the difference between software architecture and low-level design
    • Identify the key responsibilities of a software architect

    Key concepts

    • architecture vs design
    • structural decisions
    • cross-cutting concerns
    • architecture characteristics
    • implicit vs explicit architecture
    • first principles reasoning
  • Layered Architecture

    Organizing systems into horizontal layers (presentation, business logic, data access) with strict dependency rules between layers. Covers n-tier patterns, layer isolation, and when layering creates accidental complexity.

    Objectives

    • Design a three-tier layered application and enforce layer boundaries
    • Identify the sinkhole anti-pattern and propose a mitigation

    Key concepts

    • presentation layer
    • business logic layer
    • data access layer
    • layer isolation
    • closed vs open layers
    • n-tier architecture
    • sinkhole anti-pattern
  • Modularity

    Decomposing systems into well-defined modules with clear responsibilities and boundaries. Covers module cohesion, package design principles, and the impact of modularity on maintainability and deployability.

    Objectives

    • Apply package cohesion principles to organize a growing codebase
    • Use a dependency structure matrix to detect problematic coupling

    Key concepts

    • module boundaries
    • package cohesion principles
    • package coupling principles
    • release equivalence principle
    • common closure principle
    • common reuse principle
    • dependency structure matrix
  • Coupling and Cohesion

    Measuring and managing the degree of interdependence between components (coupling) and the functional relatedness within a component (cohesion). Covers afferent/efferent coupling, instability metrics, and the main sequence.

    Objectives

    • Calculate instability and abstractness for a component and plot it on the main sequence
    • Identify tight coupling in a codebase and propose a decoupling strategy

    Key concepts

    • afferent coupling
    • efferent coupling
    • instability metric
    • abstractness
    • main sequence
    • distance from main sequence
    • tight coupling smells
  • Component Design

    Defining component boundaries, responsibilities, and interfaces. Covers identifying components from domain requirements, shared kernel patterns, and the role of component design in enabling team autonomy.

    Objectives

    • Derive components from a domain model using actor/action analysis
    • Design component interfaces that minimize coupling between teams

    Key concepts

    • component identification
    • component responsibility
    • component interface
    • actor/action approach
    • event storming components
    • shared kernel
    • team-per-component
2 · Architectural Patterns5 topics
  • Hexagonal Architecture

    Ports and adapters pattern that isolates core domain logic from external concerns like databases, UIs, and third-party services. Enables testability and framework independence.

    Objectives

    • Design a hexagonal architecture with clear port and adapter boundaries
    • Explain how hexagonal architecture enables testing without a real database

    Key concepts

    • ports
    • adapters
    • primary ports
    • secondary ports
    • domain model isolation
    • dependency rule
    • testability without infrastructure
  • Event-Driven Architecture

    Designing systems where components communicate through events. Covers event notification, event-carried state transfer, event sourcing, and the tradeoffs of eventual consistency and choreography vs orchestration.

    Objectives

    • Design an event-driven flow using choreography and explain failure handling
    • Compare choreography vs orchestration for a multi-step business process

    Key concepts

    • event notification
    • event-carried state transfer
    • choreography
    • orchestration
    • eventual consistency
    • event schema evolution
    • dead letter queues
  • Microservices Architecture

    Structuring an application as a collection of small, independently deployable services organized around business capabilities. Covers service decomposition, inter-service communication patterns, data isolation, and distributed systems tradeoffs.

    Objectives

    • Decompose a monolith into microservices using bounded contexts
    • Evaluate whether a use case warrants microservices over a modular monolith

    Key concepts

    • service decomposition
    • business capability alignment
    • bounded context
    • data ownership
    • inter-service communication
    • distributed transactions
    • service granularity
  • CQRS and Event Sourcing

    Command Query Responsibility Segregation separates read and write models. Event Sourcing stores state as an immutable sequence of events. Covers projections, snapshotting, eventual consistency, and when these patterns add vs destroy value.

    Objectives

    • Design a CQRS system with separate read and write models
    • Explain when Event Sourcing adds audit and temporal query value vs adds complexity

    Key concepts

    • command model
    • query model
    • projection
    • event store
    • snapshotting
    • temporal queries
    • read model rebuild
  • Modular Monolith Patterns

    Designing a single deployable unit with strong internal module boundaries. Covers the modular monolith as a valid architectural choice, strangler fig pattern for decomposition, and anti-corruption layers for legacy integration.

    Objectives

    • Design a modular monolith with enforced internal boundaries
    • Apply the strangler fig pattern to incrementally extract services

    Key concepts

    • modular monolith
    • internal module boundaries
    • strangler fig pattern
    • anti-corruption layer
    • big ball of mud
    • monolith vs microservices decision
    • deployment monolith
3 · Quality Attributes5 topics
  • Scalability

    Designing systems to handle increasing load without proportional cost increases. Covers horizontal vs vertical scaling, stateless design, sharding, caching strategies, and the relationship between scalability and cost.

    Objectives

    • Design a stateless service tier that scales horizontally
    • Choose between sharding strategies based on access patterns

    Key concepts

    • horizontal scaling
    • vertical scaling
    • stateless services
    • sharding strategies
    • cache topology
    • load balancing
    • elasticity
  • Reliability and Resilience

    Building systems that continue to function correctly in the presence of failures. Covers circuit breakers, bulkheads, retry strategies, graceful degradation, chaos engineering, and SLO/SLA/SLI frameworks.

    Objectives

    • Apply circuit breaker and bulkhead patterns to prevent cascading failure
    • Define meaningful SLOs and align architecture decisions to meet them

    Key concepts

    • circuit breaker
    • bulkhead pattern
    • retry with backoff
    • graceful degradation
    • chaos engineering
    • SLO / SLA / SLI
    • failure mode analysis
  • Security Architecture

    Embedding security into system architecture through defense in depth, threat modeling, zero-trust principles, and secure-by-design patterns. Covers authentication/authorization architecture, secrets management, and data protection strategies.

    Objectives

    • Perform a STRIDE threat model on a system design
    • Design a zero-trust service-to-service authentication strategy

    Key concepts

    • defense in depth
    • zero-trust architecture
    • threat modeling (STRIDE)
    • least privilege
    • secrets management
    • authentication vs authorization
    • encryption at rest and in transit
  • Performance Architecture

    Designing for latency and throughput targets at the architecture level. Covers performance budgets, caching hierarchies, asynchronous processing patterns, database query optimization at design time, and capacity planning.

    Objectives

    • Allocate a latency budget across service call chains
    • Design a caching hierarchy that meets read latency targets

    Key concepts

    • latency budget
    • throughput targets
    • caching hierarchy
    • read-through vs write-through cache
    • async processing for latency hiding
    • N+1 query avoidance
    • capacity planning
  • Observability Architecture

    Designing systems to be understandable from their external outputs. Covers structured logging, distributed tracing, metrics, the three pillars of observability, and alerting strategy that avoids alert fatigue.

    Objectives

    • Design a distributed tracing strategy for a microservices system
    • Define alerting thresholds using SLO-based burn rate alerts

    Key concepts

    • structured logging
    • distributed tracing
    • metrics (RED / USE method)
    • correlation ID propagation
    • alerting strategy
    • cardinality in metrics
    • sampling in tracing
4 · Distributed Systems Design5 topics
  • CAP Theorem and Consistency Models

    Understanding the CAP theorem and its implications for distributed data stores. Covers consistency models (strong, eventual, causal), PACELC extension, and how to choose the right consistency level for a given use case.

    Objectives

    • Apply the CAP theorem to justify a data store choice
    • Design a system that tolerates network partitions with acceptable consistency

    Key concepts

    • CAP theorem
    • consistency vs availability
    • partition tolerance
    • PACELC extension
    • eventual consistency
    • causal consistency
    • strong consistency
  • Service Mesh and Network Topology

    Managing service-to-service communication in microservices with a dedicated infrastructure layer. Covers sidecar proxies, control plane vs data plane, mTLS, traffic management, and when a service mesh adds value versus adds complexity.

    Objectives

    • Explain what a service mesh provides that a load balancer does not
    • Design an mTLS strategy for service-to-service authentication

    Key concepts

    • sidecar proxy
    • control plane
    • data plane
    • mutual TLS
    • traffic shaping
    • load balancing strategies
    • service discovery
  • API Gateway Patterns

    Using an API gateway as the single entry point for external clients. Covers gateway responsibilities (auth, rate limiting, routing, aggregation), backends-for-frontends (BFF) pattern, and gateway vs service mesh boundaries.

    Objectives

    • Design a BFF gateway layer for mobile and web clients with different data needs
    • Explain when to put auth logic in the gateway vs the downstream service

    Key concepts

    • API gateway
    • backend-for-frontend (BFF)
    • rate limiting
    • request aggregation
    • authentication at the edge
    • gateway vs service mesh
    • fan-out aggregation
  • Data Architecture in Distributed Systems

    Managing data across service boundaries. Covers database-per-service, shared database anti-pattern, saga pattern for distributed transactions, data mesh concepts, and polyglot persistence.

    Objectives

    • Design a saga for a distributed transaction that spans three services
    • Justify database-per-service and explain the eventual consistency tradeoff

    Key concepts

    • database-per-service
    • shared database anti-pattern
    • saga pattern
    • choreography-based saga
    • orchestration-based saga
    • polyglot persistence
    • data mesh
  • Asynchronous Messaging Patterns

    Decoupling services through message brokers and async communication. Covers at-least-once vs exactly-once delivery, idempotency, message ordering, competing consumers, and the outbox pattern for reliable event publishing.

    Objectives

    • Implement the outbox pattern to guarantee event publishing with database commits
    • Design an idempotent consumer that handles duplicate messages safely

    Key concepts

    • at-least-once delivery
    • exactly-once delivery
    • idempotency
    • outbox pattern
    • message ordering guarantees
    • competing consumers
    • dead-letter queue
5 · Architectural Decisions4 topics
  • Architecture Decision Records

    Documenting significant architectural decisions and their context, options considered, and consequences. Covers ADR format, when to write one, how to maintain an ADR log, and using ADRs to onboard new engineers.

    Objectives

    • Write a complete ADR for a real architectural decision including rejected alternatives
    • Explain why ADRs reduce 'why did we build it this way?' questions

    Key concepts

    • ADR format
    • decision context
    • options considered
    • decision consequences
    • ADR log maintenance
    • superseding ADRs
    • decision archaeology
  • Trade-off Analysis

    Systematically evaluating architectural options against competing quality attribute requirements. Covers ATAM (Architecture Tradeoff Analysis Method), quality attribute scenarios, utility trees, and sensitivity/tradeoff points.

    Objectives

    • Construct a utility tree for a system with competing quality attribute requirements
    • Identify sensitivity and tradeoff points in an architecture under evaluation

    Key concepts

    • ATAM
    • quality attribute scenario
    • utility tree
    • sensitivity point
    • tradeoff point
    • risk and non-risk identification
    • stakeholder priorities
  • Fitness Functions

    Defining automated tests that validate architectural characteristics over time. Covers structural fitness functions (dependency rules), process fitness functions (deployment pipeline gates), and holistic fitness functions for system-wide properties.

    Objectives

    • Define a structural fitness function that enforces layer dependency rules
    • Design a chaos engineering experiment as a holistic fitness function

    Key concepts

    • fitness function
    • structural fitness function
    • process fitness function
    • holistic fitness function
    • ArchUnit
    • chaos monkey
    • architecture runway
  • Evolutionary Architecture

    Designing systems that can change incrementally over time while preserving fitness. Covers guided change via fitness functions, incremental change patterns, architectural coupling and evolvability, and the relationship between modularity and evolvability.

    Objectives

    • Apply branch-by-abstraction to replace a component without a flag day
    • Explain how modularity directly enables evolvability

    Key concepts

    • incremental change
    • guided change
    • architectural coupling
    • evolvability
    • feature toggles
    • branch by abstraction
    • expand-contract pattern
6 · Architecture Leadership2 topics
  • Architecture Governance

    Establishing processes and guardrails that guide architecture decisions across teams. Covers architecture review boards, lightweight governance models, architecture principles, tech radar, and avoiding governance becoming a bottleneck.

    Objectives

    • Design a lightweight governance model that enables team autonomy
    • Introduce a tech radar process to align technology choices across teams

    Key concepts

    • architecture review board
    • architecture principles
    • tech radar
    • governance lightweight models
    • paved road pattern
    • inner source
    • enabling team model
  • Technology Strategy

    Defining and communicating the long-term technical direction that serves business goals. Covers platform thinking, build vs buy decisions, technology debt portfolio management, architecture vision documents, and aligning engineering investment to business strategy.

    Objectives

    • Write an architecture vision document aligned to a 3-year business strategy
    • Build a business case for addressing technology debt as a strategic investment

    Key concepts

    • platform thinking
    • build vs buy decision framework
    • technology debt portfolio
    • architecture vision
    • technical due diligence
    • north star architecture
    • investment horizon model

Levels: Junior, Mid, Senior, and Expert

Explain it in your own words

Graded by AI · no account · 1 question

No options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.

0 / 600

Already studying Software Architecture Fundamentals?

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 Software Architecture Fundamentals?

Start with Architecture Foundations: Architectural Thinking, Layered Architecture, and Modularity. The map orders topics by what they depend on, so each one prepares the next.

How long does a full Software Architecture Fundamentals 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.