Out of all the decisions an architect must make with regard to distributed architectures, three stand out as the most important when it comes to the success of an architecture. The first is communication—should communication between services be synchronous or asynchronous? The second is coordination—should workflows use orchestration or choreography? And the third is consistency—should requests rely on atomic transactions or eventual consistency? It turns out these three major decisions—what we can the primary forces of distributed architectures—are co-joined. In this lesson I show how these three primal forces form what are called transactional sagas, and provide a brief an overview of the eight possible transactional sagas and their pros and cons. I’ll then show how to leverage the star ratings we’ve developed for these transactional sagas to simplify your decisions when creating distributed architectures.
Software Architecture Monday: https://www.developertoarchitect.com/lessons/
Fundamentals of Software Architecture 2nd Edition: https://bit.ly/4ioDTPA
Head First Software Architecture: https://amzn.to/3VNFI0o
Software Architecture: The Hard Parts: https://amzn.to/3BjMMF2