The aggregated root defines a restricted context by default, although at a lower level (btw the lower level of the restricted context that you can find is an object, any object). The process manager is the name that they used instead of the saga, perhaps you can come up with other names, it does not matter, they all have the same purpose.
And yes, I would consider using a saga to achieve the final sequence. In fact, I think this is the best way, and that is exactly what I do in my applications. In any case, I use a message-driven architecture (yes, in a local, non-distributed application), and I have automatic support for the saga through the service bus (mine, not yet released).
It is important to deal with possible consistency in order to ensure idempotency everywhere. That is, the aggregate roots must reject the duplicated operation, and, of course, the event handler must be able to cope with the fact that the same event can be published more than once. However, keep in mind that you cannot guarantee 100% idempotency, but you can come close to it.
source share