Skip to content
  • Sign In
  • Try Now
View all events
Software Architecture

Software Architecture Trade-Off Analysis

Published by O'Reilly Media, Inc.

Advanced content levelAdvanced

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:

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

    Xlinksearch