O'Reilly logo
live online training icon Live Online training

Architecture foundations: Styles, patterns, and trade-offs

A survey of modern architecture patterns

Topic: Programming
Neal Ford

Understanding the topology, rationale, and trade-offs for common architecture styles and when to use synchronous or asynchronous communication patterns are critical foundational skills for architects. But you may not yet have been exposed to the breadth of architecture patterns, particularly if you’re early in your career as an architect.

Join expert Neal Ford for a survey of architecture patterns, applied through modern engineering practices and perspectives. For each pattern, you’ll learn the history, philosophy, rationale, topology, optimum uses, and negative trade-offs. You’ll leave with an understanding of common communication patterns within particular styles, along with pros and cons for each architecture style.

What you'll learn-and how you can apply it

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

  • The origin of a number of key architecture styles
  • When and when not to apply each architecture style
  • When to build hybrid architectures

And you’ll be able to:

  • Determine the best communication pattern for your architecture
  • Choose an appropriate architecture style for a problem
  • Analyze trade-offs between different architecture styles

This training course is for you because...

  • You’re a software architect who is interested in adding more architectural styles to your skill set.
  • You’re an architect who wants to determine the proper communication style to derive the most benefit from a particular architecture pattern.


  • A basic understanding of software development, design patterns, and modern software engineering practices, such as continuous integration and DevOps

Recommended follow-up:

About your instructor

  • 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 developers conferences worldwide. His topics include software architecture, continuous delivery, functional programming, cutting-edge software innovations, and a business-focused book and video on improving technical presentations. Check out his website, Nealford.com.


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

Definitions (20 minutes)

  • Lecture: Top-level partitioning in architecture; architecture quantum—architecture characteristics defined; scope of architecture characteristics; discovering hybrid architectures; case study—“Going, Going, Gone”; synchronous communication patterns; asynchronous communication patterns; trade-offs Group discussion: What situations require synchronous communication? What situations benefit from asynchronous communication?

Technical partitioning styles (35 minutes)

  • Lecture: Layered architecture; microkernel; pipes and filters

Break (10 minutes)

Technical partitioning styles continued (50 minutes)

  • Lecture: Event-driven architectures; integration hubs and orchestrators; ESB-SOA

Break (10 minutes)

Domain partitioning styles (60 minutes)

  • Lecture: Modular monoliths; microservices; eventual consistency patterns; service-based

Break (10 minutes)

Domain-specific styles (25 minutes)

  • Lecture: Space-based architecture; LMAX

Choosing an architecture pattern and communication style (20 minutes)