Software Architecture Trade-Off Analysis
Published by O'Reilly Media, Inc.
Using architecture quantum to analyze static, dynamic, and communication coupling
Course outcomes
- Analyze and evaluate trade-offs for coupling in distributed architectures
- Understand the impact of architecture quantum on communication, consistency, and coordination
Course description
Software architecture can create multidimensional problems where multiple forces all interact in interdependent ways. To analyze trade-offs, an architect must first determine what forces need to trade off with each other. In order to untangle forces in distributed architectures, you need to use effective coupling, and to do that you must define architecture quantum. But what is an architecture quantum and how do you use it to analyze software architecture?
Join expert Neal Ford for this example-driven course, showing each type of quantum analysis in the context of an existing architecture. You’ll investigate each type of architectural coupling—static, dynamic, and communication—defining the type of coupling and how to create useful trade-off analyses.
What you’ll learn and how you can apply it
- Learn how to use static coupling to determine granularity and operational concerns
- Learn how to use dynamic coupling to help communication decisions in microservices
- Learn how to use communication coupling to build loosely coupled APIs and platforms
This live event is for you because...
- You’re a software architect.
- You work with distributed systems like microservices.
- You want to move to microservices and/or understand trade-off analysis in those architectures.
Prerequisites
- A broad understanding of microservices
Recommended follow-up:
- Read Software Architecture: The Hard Parts (book)
- Read Building Microservices (book)
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Where did this idea come from? (20 minutes)
- Presentation: Origins (coupling for evolvability); evolution (static and dynamic coupling); current uses (coupling analysis, architectural characteristics scope, monolithic versus distributed architectures, and transactional scope)
- Hands-on exercise: Identify the type of coupling
- Q&A
Static coupling (50 minutes)
- Presentation: Defined; analyzing dependencies; availability analysis; domain broker pattern
- Hands-on exercises: Find the static coupling scope; explore breaking quanta apart
- Q&A
- Break
Dynamic coupling (55 minutes)
- Presentation: Defined; primal forces—communication (sync/async), consistency (atomic/eventual consistency), and coordination (orchestration/choreography); transactional sagas; using quantum analysis to drive transactional boundaries
- Hands-on exercises: Which is the best saga boundary?; Where is the best shard?
- Q&A
- Break
Communication coupling (45 minutes)
- Presentation: Contracts; scope of strictness/coupling; brittle integration architecture and how to avoid it; evolving integration interactions
- Hands-on exercise: Explore contract trade-offs
- Q&A
Advice (10 minutes)
- Presentation: Connascence and locality; limiting scope of static coupling via contracts; limiting identity connascence with transactional sharding
Your Instructor
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 several books, a number of magazine articles, and dozens of video presentations (including a video on improving technical 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, Nealford.com