Architecture Foundations: Styles, Patterns, & Tradeoffs
A Survey of Modern Architecture Patterns
Understanding the topology, rationale, and tradeoffs for common architecture styles is a critical foundational skill for architects. Additionally, architects need to know when to use synchronous or asynchronous communication patterns. This online course takes modern engineering practices and perspectives and applies it to a survey of architecture patterns. For each pattern, I discuss the history, philosophy, rationale, topology, optimum uses, and negative tradeoffs. I also discuss common communication patterns within particular styles, along with pros and cons for the architecture style.
What you'll learn-and how you can apply it
- A survey of architecture styles and patterns considering modern engineering practices and perspectives.
By the end of this live, hands-on, online course, you’ll understand:
- The origin of each architecture style
- When best to apply each architecture style
- When not to apply an 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 tradeoffs between different architecture styles
This training course is for you because...
- You are a software architect, and knowledge of additional architectural styles will provide you with more options to use in your own work.
- As an architect, determining the proper communication styles will help you derive the most benefit from a particular architecture pattern.
- Basic knowledge of software development
- Basic knowledge of concepts such as design patterns
- Basic knowledge of modern software engineering practices such as continuous integration, DevOps
About your instructor
Neal Ford is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a software company and a community of passionate, purpose-led individuals, who thinks disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. Before joining ThoughtWorks, Neal was the Chief Technology Officer at The DSW Group, Ltd., a nationally recognized training and development firm.
Neal has a degree in Computer Science from Georgia State University specializing in languages and compilers and a minor in mathematics specializing in statistical analysis. He is an internationally recognized expert on software development and delivery, especially in the intersection of agile engineering techniques and software architecture. Neal authored magazine articles, seven books (and counting), 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 includes a business-focused book and video in improving technical presentations. His primary consulting focus is the design and construction of large-scale enterprise applications. If you have an insatiable curiosity about Neal, visit his web site at nealford.com.
The timeframes are only estimates and may vary according to how the class is progressing
Definitions (20 mins)
- Top-level Partitioning in architecture
- Architecture Quantum
- Architecture characteristics defined
- Scope of architecture characteristics
- Discovering Hybrid architectures
- Case Study: Going, Going, Gone
- Communication Patterns
- Synchronous communication patterns
- Asynchronous communication patterns
- What situations require synchronous communication?
- What situations benefit from asynchronous communication?
- Technical partitioning
- Layered architecture (10 mins)
- Micro-kernel (15 mins)
- Pipes and Filters (10 mins)
- BREAK 10 mins
- Event-driven architectures (20 mins)
- Interlude: Integration Hubs and Orchestrators (15 mins)
- ESB-SOA (15 mins)
- BREAK 10 mins
- Domain partitioning
- Modular monolith (10 mins)
- Microservices (25 mins)
- Interlude: Eventual consistency patterns (15 mins)
- Service-based (10 mins)
- BREAK 10 mins
- Domain Specific
- Space-based architecture (10 mins)
- LMAX (15 mins)
Choosing an architecture pattern and communication style (20 mins)