Skip to Content
View all events

Software Architecture Patterns and Antipatterns

Published by O'Reilly Media, Inc.

Intermediate content levelIntermediate

Explore reusable solutions to common problems—including AI

Course outcomes

  • Differentiate between an architectural style and a pattern, and understand how they fit together in software architecture
  • Identify patterns that you can use to tackle common architecture problems
  • Discover antipatterns to avoid in software architecture

Course description

An architectural pattern, much like a design pattern, is a reusable solution to problems an architect commonly encounters when designing systems. Exposure to architecture patterns, and knowing how to leverage them appropriately, are critical foundational skills for all architects.

Join Neal Ford and Raju Gandhi to gain a solid understanding of architectural patterns and a valuable toolkit to enhance your capability as a software architect. You’ll learn the differences between architectural styles (such as layered and microservices) and architectural patterns (such as messaging and caching patterns). With that foundation, you’ll delve into a variety of architectural patterns, their ideal applications, and the trade-offs each pattern presents. You’ll also explore emerging patterns and antipatterns in AI.

What you’ll learn and how you can apply it

  • Key architectural patterns used within modern software architectures
  • The strengths and trade-offs associated with each pattern
  • Antipatterns to avoid when architecting software

This live event is for you because...

  • You’re a software architect who’s interested in adding more architectural patterns 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.

Prerequisites

  • A basic understanding of software architecture and development
  • Familiarity with modern software engineering principles like continuous integration and DevOps

Recommended preparation:

Recommended follow-up:

Schedule

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

Fundamentals and definitions (10 minutes)

  • Presentation: Architecture pattern definition; distinguishing patterns from styles

12/15 factor apps (10 minutes)

  • Presentation: Exploring 12/15 factor apps
  • Group discussion: How well have these aged?

Architectural patterns nexus (20 minutes)

  • Presentation: Governance mesh; data mesh
  • Group discussion: Adoption of governance/data mesh in the industry

Caching patterns (25 minutes)

  • Presentation: Caching patterns (in-memory caching, cache aside, read through, write around, write back, write through)
  • Group discussion: Other caching patterns
  • Break

Continuous delivery patterns (20 minutes)

  • Presentation: A/B; canary; blue/green; Scientist for fidelity fitness functions
  • Group discussion: Other continuous delivery patterns in the wild

Deployment patterns (10 minutes)

  • Presentation: Serverless
  • Group discussion: Do you agree that this is a pattern and not a style?

Re-use patterns (35 minutes)

  • Presentation: Hexagonal/service mesh
  • Group discussion: Other reuse patterns in the industry?
  • Break

Event-driven architecture (EDA) patterns (20 minutes)

  • Presentation: Competing consumer; event sourcing; outbox

Reliability patterns (20 minutes)

  • Presentation: Circuit breaker; timeouts/retries; redundancy
  • Break

Frontend patterns (20 minutes)

  • Presentation: BFF; data fetching

Antipatterns (20 minutes)

  • Presentation: Vendor king, witches brew, grains of Sand, swarm of gnats, frozen caveman, lava flow, and state-carrying events

AI patterns and antipatterns (30 minutes)

  • Presentation: Patterns (dynamic few-shot prompting; on-device LLM Inference; LLM as judge; retrieval-augmented generation); antipatterns (rush to fine-tune LLMs; hallucinated dependencies as attack vector)

Your Instructors

  • Neal Ford

    Neal Ford is an independent software consultant, best-selling author, speaker, and innovator in building concrete verification mechanisms for software architecture, for humans or agents. He’s an internationally recognized expert on software development and delivery, especially at the intersection of agile engineering techniques and software architecture. Neal has authored magazine articles, nine books (and counting), and dozens of video presentations, and has spoken at hundreds of developers’ conferences worldwide. His topics include software architecture, continuous delivery, functional programming, cutting-edge software engineering, and improving technical presentations. Check out his web site at Nealford.com.

  • Raju Gandhi

    Raju Gandhi is the founder of DefMacro Software as well as a consultant, author, teacher, and speaker at conferences around the world. As a software developer and teacher, he believes in keeping things simple, preferring to understand and explain the “why” as opposed to the “how.” Raju blogs at LooselyTyped.com and lives in Ohio with his wife, Michelle, their three children, Mason, Micah, and Delphine, and furry family members Buddy, Skye, and Princess Zara. Find his contact information at Rajugandhi.com. He’s always looking to make new friends.

    linkedinXlinksearch

Skill covered

Architectural Patterns