Skip to Content
Software Architecture Fundamentals, Third Edition
on-demand course

Software Architecture Fundamentals, Third Edition

with Neal Ford, Mark Richards
July 2025
Beginner
13h 16m
English
O'Reilly Media, Inc.
Closed Captioning available in German, English, Spanish, French, Italian, Japanese, Korean, Portuguese (Portugal, Brazil), Chinese (Simplified), Chinese (Traditional)

Overview

Join experts Neal Ford and Mark Richards on a comprehensive software architecture journey, guiding you from foundational principles to advanced enterprise strategies. This course is broken into three sections—fundamentals, intermediate, and advanced, designed for every stage of your career.

Start with the fundamentals, learning core concepts, patterns, and the role of an architect—ideal for aspiring architects. Then, move on to the intermediate course to apply your skills, working with microservices, event-driven architectures, and managing design trade-offs. Finally, master the complexities of large-scale systems in the advanced section. Tackle scalability, resilience, and strategic leadership to drive major projects and align technical decisions with business goals.

Whether you are an aspiring, practicing, or senior architect, this complete learning path provides the insights you need to excel.

What you’ll learn and how to apply it

Fundamentals

  • Explain the key differences between software architecture and software design
  • Describe the fundamental principles of software architecture and the role of a software architect
  • Define software modularity and articulate the benefits of a modular design
  • Identify different architectural styles, including monolithic and distributed architectures
  • Create simple diagrams to represent a software system’s structure and behavior
  • Recognize the importance of non-functional requirements (e.g., performance, security, reliability) in shaping an architecture
  • Analyze the influence and implications of data on architectural decisions

Intermediate

  • Design software architectures that meet a given set of functional and non-functional requirements
  • Explain and compare advanced architectural styles, including service-based, microservices, and event-driven architectures
  • Identify and prioritize the critical non-functional requirements for a specific software system
  • Apply architectural frameworks, tools, and fitness functions to ensure compliance and validate architectural decisions
  • Evaluate different architectural solutions for a given problem, making informed decisions based on trade-offs
  • Design flexible and adaptable architectures based on the principles of evolutionary architecture
  • Effectively lead a team through the design and implementation of a software architecture using strong communication and collaboration skills

Advanced

  • Master the design and implementation of complex, large-scale distributed systems, addressing challenges like concurrency, scalability, and fault tolerance
  • Demonstrate a deep understanding of current industry trends and challenges in software architecture, such as cloud computing, big data, and the Internet of Things (IoT)
  • Drive architectural decisions by effectively communicating, negotiating, and collaborating with business stakeholders and product teams
  • Lead and coordinate the architectural design process in large-scale enterprise projects
  • Conduct formal architectural reviews and audits to identify potential issues and recommend strategic improvements
  • Align architectural decisions with overarching business goals, constraints, and objectives
  • Contribute to the advancement of the software architecture field through thought leadership, such as publishing articles, giving talks, or participating in standardization efforts

This course is for you because

  • You want to learn more about software architecture, from the fundamentals to advanced concepts and skills.
  • You want to become more proficient at software architecture.
  • Software architecture is an adjacent technology or one that you work with and would like to understand better.
  • You are looking to move into a new role from developer to architect, from senior software developer or tech lead to software architect, or from software architect to senior architecture roles.

Prerequisites

  • Can identify and describe the main components of a software system, such as databases, servers, and user interfaces.
  • Can use a programming language to implement a simple software system following a given architecture.
  • Can identify and describe the main stages of the software development lifecycle, including requirements analysis, design, implementation, testing, and maintenance.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Watch now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Software Architecture Fundamentals, Second Edition

Software Architecture Fundamentals, Second Edition

Neal Ford, Mark Richards
Head First Software Architecture

Head First Software Architecture

Raju Gandhi, Mark Richards, Neal Ford

Publisher Resources

ISBN: 0642572016094