Skip to content
O'Reilly home
Software Architecture

Software architecture by example

Learn how to apply the fundamentals through real-world examples

154 spots available

Sign up for a free trial!

or sign in.

Registration closes August 23, 2021 10:00 p.m. Coordinated Universal Time

What you’ll learn and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • How to identify architecture characteristics (“-ilities”) within a given context
  • How to test architecture characteristics via fitness functions
  • When to choose particular software architecture styles and patterns
  • The overall steps and techniques for building an architecture

And you’ll be able to:

  • Identify and design architectural components
  • Analyze and select the right architecture patterns
  • Diagram and document an architectural solution
  • Immediately apply the techniques learned in this course to your own projects
  • Better communicate architecture decisions to developers and stakeholders

This live event is for you because…

  • You're a senior-level developer who wants to learn how to effectively create and communicate an architecture.
  • You're a practicing software architect who wants to hone your skills and learn new software architecture techniques and practices.
  • You're responsible for creating a software architecture for your company, and you want to make the right choices.
  • You want a more complete picture of how to create software architectures.



The timeframes are only estimates and may vary according to how the class is progressing.

Introduction (10 minutes)

  • Lecture: Techniques for creating software architectures; real-world examples; introduction to example architecture katas
  • Discussion: Common architectural challenges
  • Q&A

Architecture characteristics (“-ilities”) (20 minutes)

  • Lecture and hands-on exercises: Extracting and qualifying characteristics from problem context; primary versus secondary characteristics; architecture trade-off analysis; verifying and governing architecture characteristics via fitness functions; determining architectural characteristics
  • Discussion: Architecture characteristics versus requirements
  • Q&A

Architecture component design (30 minutes)

  • Lecture and hands-on exercises: Component and service identification, granularity, coupling, and cohesion; iterative component creation; building components
  • Discussion: What is the appropriate component granularity?
  • Q&A
  • Break (10 minutes)

Selecting architecture patterns (60 minutes)

  • Lecture and hands-on exercises: Comparing architecture patterns; analyzing pattern characteristics; problem context to architecture pattern mapping; selecting the right architecture pattern; architecture pattern hybrids; selecting architectural patterns
  • Discussion: How do you choose the appropriate pattern(s)?
  • Q&A
  • Break (10 minutes)

Diagramming architectures (20 minutes)

  • Lecture and hands-on exercises: General diagramming techniques; leveraging the C4 diagramming technique; diagramming through code; diagramming solutions two ways
  • Discussion: How much diagramming is appropriate? What's the sweet spot?

Documenting software architecture (20 minutes)

  • Lecture and hands-on exercises: Identifying architecture decisions; justifying decisions; leveraging architecture decision records (ADRs); communicating software architectural decisions; documenting architectural decisions
  • Discussion: What should you document? In what level of detail?
  • Q&A

Your Instructors

  • Neal Ford

    Neal Ford is a director, software architect, and meme wrangler at ThoughtWorks, a software company and a community of passionate, purpose-led individuals who think disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He’s an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal has authored seven books (and counting), a number of magazine articles, and dozens of video presentations and spoken at hundreds of developer conferences worldwide. His topics of interest include software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website,

  • Mark Richards

    Mark Richards is an experienced hands-on software architect involved in the architecture, design, and implementation of microservices architectures, service-oriented architectures, and distributed systems. He's been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. He's the author of numerous O’Reilly technical books and videos, including several books on microservices, the Software Architecture Fundamentals video series, the Enterprise Messaging video series, and Java Message Service, second edition, and was a contributing author to 97 Things Every Software Architect Should Know. A speaker and trainer, he’s given talks on a variety of enterprise-related technical topics at hundreds of conferences and user groups around the world.

Start your free 10-day trial

Get started

Want to learn more at events like these?

Get full access to O'Reilly online learning for 10 days—free.

  • checkmark50k+ videos, live online training, learning paths, books, and more.
  • checkmarkBuild playlists of content to share with friends and colleagues.
  • checkmarkLearn anywhere with our iOS and Android apps.
Start Free TrialNo credit card required.