Summary
In this chapter, we examined how to work with long-running workflows using sagas and the different styles we can use to implement them. We also looked at the implications of using explicit orchestration versus implicit choreography. We finally looked at how we can handle deadlines when there are no user-initiated actions.
You have learned how sagas can act as a first-class citizen in addition to aggregates when designing a system that makes use of domain-driven design principles.
In the next chapter, we will look at how we can interact with external systems while respecting bounded context boundaries between core and peripheral systems.