Software Architecture Patterns and Antipatterns
Published by O'Reilly Media, Inc.
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:
- (Optional) Take Architecture Foundations: Styles and Patterns (live course)
Recommended follow-up:
- Read Software Architecture: The Hard Parts (book)
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 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’s authored eight books (and counting), a number of magazine articles, and dozens of video presentations (including a video on improving technical presentations) and spoken at hundreds of developers conferences worldwide. His topics of interest include software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website, 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.