Skip to content

Multiple Inputs & Outputs #30

Open

Description

@nickzoic

We've kind of gotten away with having a single input queue and output queue for each node.
However, this has led to some weird behavioural differences:

  • For ProductPlugins, eg: Join, there must be exactly two inputs and they are consumed separately
  • For everything else, there can be multiple inputs and they are consumed indiscriminately

This might not seem like much of a difference but it adds significant weirdness to the pipeline code.
Maybe it'd make sense for nodes to have 0, 1 or 2 input "ports" and have this visible in the UI.

Also, a lot of "filter" operations, eg: selecting records matching a pattern, could use a second output for
"failures". Effectively an "else" output. Sure you can add another complementary filter node but there's always
the risk that you'll miss something. Plus there's no output from writers. So maybe it'd make sense for nodes to have 0, 1 or 2 output "ports" and have this visible in the UI.

Activity

  1. nickzoic commented on Apr 2, 2024

    @nickzoic
    CollaboratorAuthor

    plugins get num_inputs and num_outputs properties in 9350584 and the GUI now prevents adding links where these are 0 but actually supporting multiple ports is a bigger piece of work ...

  2. nickzoic commented on Oct 23, 2024

    @nickzoic
    CollaboratorAuthor

    Note that the new(ish) Filter plugin is a step in this direction: currently the "outputs" option allows setting a column to a value, but it could also allow selection of between multiple output "ports".

  3. afrubin commented on Mar 12, 2026

    @afrubin

    @nickzoic I think this all makes sense to me and is worth doing but we should discuss how much work/how disruptive these changes are likely to be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions