nifi-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brandon DeVries <>
Subject Re: [DISCUSS] Feature proposal: Streamline visual flow design
Date Thu, 10 Sep 2015 17:30:37 GMT

I have no real objections to (1) or (2).  (1) seems useful and can probably
be implemented without radical changes.  (2) might be harder, but if done
well could be a good thing.

I object to the characterization of "inconsistency" in (3).  Placing a
processor is fundamentally different than drawing a connection.  I would
think of drawing the connection as a configuration step in itself
(configuring an outgoing relationship from one processor to connect to
another).  In other words, drawing a connection could be seen as saying you
want to connect a relationship on one processor to another... but which
one?  Being able to establish an unconfigured, "invalid" connection between
processors seems like a recipe for confusion.  Obviously this is all my
opinion, but I don't think you should ever be able to establish a
connection that isn't valid.  Having said that, if forcing immediate
configuration of a processor after placing it was an option that could be
enabled, I don't see any harm.  However, I would vote that the default
behavior remain as it is.


On Thu, Sep 10, 2015 at 12:55 PM, Rob Moran <> wrote:

> There has been recent discussion around UI enhancements with the goal of
> streamlining visual flow design. Please consider the following enhancements
> and concepts for proposed solutions. Do you have any objections? If so,
> please share your thoughts and ideas for alternate solutions to streamline
> visual flow design in NiFi's GUI.
> *Enhancement 1*Enable quicker, more efficient access to both known and
> not yet known processors.
> *Issue*The current interaction of dropping a processor on the graph and
> being prompted with a dialog helps a user who does not know exactly which
> one they need. However, as the number of processors increase, the current
> methods of finding what you need become increasingly difficult. And for
> those users who know exactly what processor they want, routine interaction
> with the dialog becomes rather cumbersome.
> *Concept for Proposed Solution*
> Present logical groupings of processors to the user. Ideas include
> usage-generated categories like ‘recent’ and ‘popular,’ along with
> categories such as those defined by the Enterprise Integration Patterns
> (e.g., mediate, route, transform) and perhaps further subcategories if
> applicable. These options would be accessible from the main UI as well as
> the add processor dialog.
> Other ideas include 'pinning' processors you routinely use for quick
> access, setting a default drag-n-drop processor, and assigning keyboard
> shortcuts to quickly add a favorite to the graph.
> Design decisions made here could also serve as a model for placing other
> elements onto the graph such as templates.
> *Enhancement 2*Provide visual distinction to processor types.
> *Issue*When viewing a flow on the graph, all processor blocks look the
> same. As a result, users must rely on processor names alone to interpret
> what they are doing and how the given flow is working together.
> *Concept for Proposed Solution*
> Introduce some combination of iconography, unique styling, and more
> descriptive labeling to processor blocks. As mentioned earlier, looking to
> the Enterprise Integration Patterns could provide cues for visually
> distinct icons and labeling. Unique styling could occur at various zoom
> levels and/or screen resolution to better respond to user needs.
> *Enhancement 3*
> Give users the choice to be prompted immediately with a configuration
> dialog after they place a processor, draw a connection, etc. on the graph.
> *Issue*
> Currently there is inconsistency with the interaction. Place a processor -
> nothing. Draw a connection - configuration dialog pops up.
> *Concept for Proposed Solution*
> Part 1 - Decide on a consistent default behavior. Part 2 - Provide the
> user the ability to reverse the behavior. One thought is to include a
> toggle in each configuration dialog giving the user control over the
> behavior while in context. Additionally, there could be a user preferences
> area where they could make global changes. A user preferences area could
> come into play with potential solutions proposed in Enhancement 1 as well.
> --
> Rob

View raw message