Optimise atomic processing of pipelines

Problem to solve

Currently the atomic processing is:

  1. It is slower than legacy method for the first time (as it effectively processes the whole pipeline at once for most of time),
  2. It is faster (as we store the processing state) to reduce amount of redundant operations,
  3. It is faster to process DAGs (as we remove a number of N+1).

Improvements

  1. Introduce active model to hold the object state,
  2. Discover as part of processing what needs to be processed as part of dependency cycle,
  3. Cut the work, and improve performance of Status::Composite.

Intended users

Links / references