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 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.