Skip to content
  • Sign In
  • Try Now
View all events
Distributed Systems

Designing Distributed Systems

Published by O'Reilly Media, Inc.

Intermediate content levelIntermediate

Eight transactional saga patterns and their trade-offs

Course outcomes

  • Learn how to perform trade-offs when assessing communication in distributed architectures such as microservices
  • Understand communication differences and trade-offs: synchronous versus asynchronous
  • Understand consistency differences and trade-offs: atomic versus eventual consistency
  • Understand coordination differences and trade-offs: orchestration versus choreography
  • Learn how to choose appropriate transactional sagas to manage complex workflows

Course description

While architects try to avoid them, transactional workflows—sagas—in microservices present some of the most difficult design decisions because of the multitude and synergy of the trade-offs involved. Each decision has nontrivial implications: synchronous versus asynchronous communication, atomic versus eventual consistency, and orchestration versus choreography workflows. To make things even worse, when analyzing transactional workflows, all three forces interfere with each other.

Join coauthors Mark Richards and Neal Ford to get expert guidance on how to analyze trade-offs in these situations. Based on the book Software Architecture: The Hard Parts, the course covers the uses, trade-offs, and traps for each of the fundamental forces (communication, consistency, and coordination) and then addresses how architects can combine these forces and make decisions about transactional workflows. You’ll examine eight different distinct transactional sagas (along with some hybrids) and discover the trade-offs inherent with each option. You’ll leave with a clearer understanding of many of the complexities inherent in distributed architectures, which will help you analyze trade-offs within your own ecosystem.

What you’ll learn and how you can apply it

  • Analyze architecture interaction forces
  • Apply qualitative analysis to determine appropriate transactional strategies
  • Model atomic behavior in distributed systems

This live event is for you because...

  • You’re an architect or developer designing or building distributed systems.
  • You’re a senior developer or architect who wants to better understand the harder parts of software architecture.
  • You’re struggling with service granularity, distributed transactions, service coupling, and distributed workflows.

Prerequisites

  • A basic understanding of the fundamentals of software architecture
  • Familiarity with distributed systems

Recommended follow-up:

Schedule

The time frames are only estimates and may vary according to how the class is progressing.

Understanding architecture quantum and dynamic coupling (20 minutes)

  • Presentation: Architecture quantum definition; static versus dynamic coupling
  • Hands-on exercises: Identify static coupling boundaries; explore the impact of communication on quantum boundaries
  • Q&A

Communication (50 minutes)

  • Presentation: Synchronous versus asynchronous communication; trade-offs for each
  • Hands-on exercise: Performance versus responsiveness
  • Q&A
  • Break

Consistency (25 minutes)

  • Presentation: ACID versus BASE; atomicity in distributed transactions; eventual consistency patterns; compensating updates
  • Q&A

Coordination (35 minutes)

  • Presentation: Orchestration versus choreography; state management patterns
  • Q&A
  • Break

Transactional sagas (50 minutes)

  • Presentation: Reconciling fundamental forces; eight transactional sagas with real-world scenarios; hybrids; transactional sharding
  • Hands-on exercise: Choose the proper saga
  • Q&A

Your Instructors

  • Mark Richards

    Mark Richards is an experienced, hands-on software architect involved in the architecture, design, and implementation of microservices architectures and other distributed systems in a variety of technologies. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. Mark is the founder of DeveloperToArchitect.com, a free website devoted to helping developers in the journey to becoming a software architect. In addition to hands-on consulting, Mark has authored numerous technical books and videos, including his two latest books Fundamentals of Software Architecture and Software Architecture: The Hard Parts that he co-authored with Neal Ford. Mark has spoken at hundreds of conferences and user groups around the world on a variety of enterprise-related technical topics.

    linkedinXlinksearch
  • 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