nodestream icon indicating copy to clipboard operation
nodestream copied to clipboard

[REQUEST] Redesign the Pipeline Runtime

Open zprobst opened this issue 1 year ago • 0 comments

Is your feature request related to a problem? Please describe. Currently, there are a number of limitations and issues associated with the data model for the core Internals of the Pipeline runtime and the step interface. Here is a (non-exhaustive) list.

  1. The Step class is currently defined by a function that takes a AsyncGenerator and returns an AsyncGenerator. This leads to some complex code in the StepExecutor class to do gymanastics to conform to that interface.
  2. Steps are also constrained in the hooks that they can connect with. For instance, there is no step hook that a step can rely on to perform clean up operations or other work when the pipeline is complete. We should consider prior art in this area specifically. What hooks are provided to steps in other pipeline models? What works for nodestream?
  3. The current runtime cannot scale beyond one thread or one process which limits the performance capabilities of this model. This is partially because of the first issue mentioned and partially do to other limitations in the way the runtime is written.

Describe the solution you'd like The specifics of the solution are unclear. However, it is clear that a comprehensive cleanup, rewrite, or refactor is required to support these chief limitations.

zprobst avatar Dec 20 '23 19:12 zprobst