Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

and non-detereminism behavior when re-processing

Table of Contents

Status

Current state: Discuss

...


When a task is enforced to be processed via this config, it could potentially introduce out-of-ordering (i.e. you may be processing a record with timestamp t0 while your stream time has been advanced to t1 > t0) and non-detereminism behavior when forcing a task for processing could also be non-deterministic and might result in a different output than the deterministic re-processing case. And users  Users can use this config to control how much they can pay for latency (i.e. not processing the task) in order to reduce out-of-ordering possibilities: when it is set to Long.MAX, then we will wait indefinitely on the task before any data may be processed for this task; on the other extreme case, when it is set to 0 we will always process the task whenever it has some data, and bare in mind that such an enforced processing may cause out-of-ordering. And in order to let users be notified qualitatively such potential "out-of-ordering" events, we will also introduce a task-level metric:

...