Closed nsoft closed 1 year ago
The above can be solved fairly easily for the most common cases by ensuring that any non deterministic router for which O1 is a downstream step, adds all of it's eligible down stream steps back onto the document in step 4. This is a manifestation of our design in which any destination down stream of a non-deterministic router is considered equivalent.
I can imagine some scenarios where this is not a complete solution, for example fan-out to a heavy step early in the plan with rejoining paths followed by several outputs in series... In such a design our assumptions will cause at least once delivery for all but the final output destination step, even if at most once was the intended contract. That can be fixed as a follow on issue
Actually, my simple solution fails in a few other cases too, so now that I'm into it, I also realize it's not that hard to fully solve this, so probably no follow on ticket will be needed.
We don't currently account for non-deterministic routers properly. The following scenario is possible:
This creates an invalid Document that has no destinations, and that will error out when it reaches the final downstream step.