When triggering windows that trigger algorithms with dependencies on past results, there is a clear race condition.
For example. Algorithm A gets triggered by Window A.
But it also looks back on the past results of itself.
If you buzz across Window A, depending on the speed at which Algorithm A can execute, it will pick up patchy past results.
To fix the only option I can see is to enforce algorithms with a self lookback to wait for past results to be ready before executing future results. This adds a new kind of complexity, and requires a few other moving parts to be present.
e.g. we need to #78 to be present, and we need to know what is currently being executed. That is all the information required to understand if the current triggering window needs to be stalled whilst old results come in.
When triggering windows that trigger algorithms with dependencies on past results, there is a clear race condition.
For example. Algorithm A gets triggered by Window A.
But it also looks back on the past results of itself.
If you buzz across Window A, depending on the speed at which Algorithm A can execute, it will pick up patchy past results.
To fix the only option I can see is to enforce algorithms with a self lookback to wait for past results to be ready before executing future results. This adds a new kind of complexity, and requires a few other moving parts to be present.
e.g. we need to #78 to be present, and we need to know what is currently being executed. That is all the information required to understand if the current triggering window needs to be stalled whilst old results come in.