We need to detect open loops in the event stream so as to know whether or not to place events before or after EffectsEnabled.
Example say there was a crash and two blockchain write events have been triggered but the corresponding write completed successfully events were not received. (We also need to make sure that for every effect there is a corresponding effect completed event.) It means that it is likely that we need to retrigger these events.
We need to detect open loops in the event stream so as to know whether or not to place events before or after EffectsEnabled.
Example say there was a crash and two blockchain write events have been triggered but the corresponding write completed successfully events were not received. (We also need to make sure that for every effect there is a corresponding effect completed event.) It means that it is likely that we need to retrigger these events.