You don’t have to assign it to yourself.  User submitted jiras are very
important, because they include use cases and details that may not occur to
a developer who just picks it up.  It is a great way to contribute!

From: Ryan Hendrickson <ryan.andrew.hendrick...@gmail.com>
<ryan.andrew.hendrick...@gmail.com>
Reply: dev@nifi.apache.org <dev@nifi.apache.org> <dev@nifi.apache.org>
Date: August 6, 2021 at 03:23:43
To: dev@nifi.apache.org <dev@nifi.apache.org> <dev@nifi.apache.org>
Subject:  Re: [DISCUSS] NiFi 2.0 Release Goals

If I put Jira's in, then I'd have to admit I'm a developer vs a user....
:-)

I'm just a power user at heart :-) ...

Ryan

On Thu, Aug 5, 2021 at 2:01 PM Otto Fowler <ottobackwa...@gmail.com> wrote:

> Ryan, these are awesome, are there jiras for them? It would be best to
> capture the requirements / use cases
>
> From: Ryan Hendrickson <ryan.andrew.hendrick...@gmail.com>
> <ryan.andrew.hendrick...@gmail.com>
> Reply: dev@nifi.apache.org <dev@nifi.apache.org> <dev@nifi.apache.org>
> Date: August 4, 2021 at 01:14:23
> To: dev@nifi.apache.org <dev@nifi.apache.org> <dev@nifi.apache.org>
> Subject: Re: [DISCUSS] NiFi 2.0 Release Goals
>
> I'll preface with what I'm about to say is not rooted in any real
> understanding of the lift required or other customer experiences... We
> have used NiFi for a long time and are excited for what new features may
> lay ahead in the 2.x line.
>
> ---After having written this, I think our succinct pain points focus
> around large data flow management, auto-scaling container environments,
and
> integration of external analytic/enrichment creation.---
>
> Thanks,
> Ryan
>
>
> 1 - Integration with auto-scaling container environments
> We often struggle with scaling custom processors in large flows. We've
> implemented a recent design pattern where we write custom python code
> packaged into a docker image, fronted with a web-service, and deployed
into
> a container environment. In NiFi we use InvokeHTTP to call out to the
> web-service. If the load becomes too great, we can easily spin-up more
> than one external web-service without sacrificing the NiFi's overall
> thruput and thread contention. In this scenario, we're using NiFi to
> manage the overall dataflow, routes, ETL services, etc, but not so much
> smarts around auto-scaling processing, etc.
>
> This makes it really easy to receive a dataflow analytic/enrichment from
an
> external team, wrap it in a docker image, and deploy it into an
> auto-scaling container environment. This also lets us avoid conversations
> about how performant the code is and if it's meeting a minimum throughput
> requirement - typically XXGB/5minutes.
>
> The request for 2.x would be to make interacting with container deployed
> services a more seamless, streamlined process, possibly through a
> normalized API or as a "Remote Container Environment" that can bind to a
> service with a health endpoint and verify it's alive and well, etc.
>
> 2 - Integration of S3 buckets with Remote Process Groups for outage
events
> and data overruns
> Another frequent struggle is the occasional death of a server in a NiFi
> flow. Example -- Our overall NiFi flow consists of ~15 stand-alone NiFis
> and 2 NiFi clusters. The stand-alone NiFi's are linearly chained together
> with Remote Process Groups to perform the overall dataflow goals. If any
> one of the 15 experience an outage, data begins to backup on the previous
> NiFi, hitting backpressure limits, etc. When the down server comes back
> online, it receives a flood of data, often overwhelming it, necessitating
> careful flowfile limits and backpressure points.
>
> The design pattern we're exploring, but would like to see baked into
NiFi,
> is that when a Remote Process Group becomes unavailable due to
> server-to-server comms failures AND the backpressure limit is reached on
a
> relationship, the Remote Process Group would begin sending data to an S3
> bucket as an automatic failover procedure. When the downed server comes
> back-online, the Remote Process Group port would know to pull data from
S3
> AND receive data via the port from the chained server.
>
> 3 - Large Canvas Management
> Beginning with a NiFi flow that consists of ~15 stand-alone NiFis and 2
> NiFi clusters, each canvas is managed individually. To see the entire
> canvas, systems engineering diagrams need to be kept up-to-date
identifying
> all the input/output ports. To move processors from server to server
often
> requires the verification of the existence of scripts, configuration
files,
> NiFi custom nars, and using the templating or Registry to migrate
portions
> of the dataflow.
>
> Our current design pattern to accomplish some of these tasks include
using
> Ansible, Jenkins, and Nexus to verify script & configuration files are up
> to date. We use Confluence's Gliffy to document the NiFi communication
> paths between the servers.
>
> Ideally, we'd be able to see an overall management view of the Canvases
> together in a single place - it would indicate which server the portions
of
> the canvas are deployed on and tie together where the Remote Process
Group
> ports are connected. Additionally, NiFi would allow the user to move
> Processors and Process Groups seamlessly from one server to another
server
> to help manually distribute and balance data flow processing cycles.
>
>
>
> On Tue, Aug 3, 2021 at 12:45 PM Joe Witt <joe.w...@gmail.com> wrote:
>
> > Kevin,
> >
> > This may well be a very interesting approach which opens up a lot of
> > options for us in how we tackle a 2.x...
> >
> > Thanks
> >
> > On Tue, Aug 3, 2021 at 8:45 AM Kevin Doran <kdoran.apa...@gmail.com>
> > wrote:
> > >
> > > Outside of core NiFi, for MiNiFi, I think it would be beneficial to
> > align MiNiFi Java and MiNiFI C++ to use the same method(s) for command
> and
> > control / flow deployment. This was discussed when MiNiFi Java was
merged
> > into the NiFi codebase [1].
> > >
> > > My proposal would be to create a Java implementation of the C2
Protocol
> > used by MiNiFi C++, both server-side and client-side, to allow
deploying
> to
> > MiNiFi Java instances from a centralize flow definition. Thanks to the
> > unification of MiNiFi Java and NiFi, this could likely also be added as
a
> > capability of NiFi at that same time.
> > >
> > > If we are able to do this on the 1.x line, then I would also support
> > deprecating other methods of flow deployment to MiNiFi outlined in [1]
> and
> > removing them in a 2.x release.
> > >
> > > [1] https://github.com/apache/nifi/pull/4933#issuecomment-808411977 <
> > https://github.com/apache/nifi/pull/4933#issuecomment-808411977>
> > > [2] https://cwiki.apache.org/confluence/display/MINIFI/C2+Design <
> > https://cwiki.apache.org/confluence/display/MINIFI/C2+Design>
> > >
> > > Thanks,
> > > Kevin
> > >
> > > > On Aug 3, 2021, at 10:07 AM, David Handermann <
> > exceptionfact...@gmail.com> wrote:
> > > >
> > > > Thanks for the continued discussion around what can or should be
> > removed.
> > > > Having a clear migration path from version 1 to version 2 will be
> very
> > > > important for supporting current deployments.
> > > >
> > > > Following the example of some other projects, one way to consider
the
> > > > upgrade is from the point of view of deprecation warnings. If
> > implemented
> > > > correctly, an installation of NiFi running the latest minor release
> of
> > > > version 1, and showing no deprecation warnings, should be
upgradeable
> > to
> > > > version 2 without any changes. Making this work involves accurately
> > tagging
> > > > components and methods with deprecation indicators, and providing a
> > clear
> > > > way to observe deprecation warnings. With the current version
> > containing
> > > > both deprecated components and deprecated methods in various
classes,
> > this
> > > > would involve some work to get right. A simple approach might be a
> > named
> > > > logger for deprecation warnings, which would write a separate log
> > file. A
> > > > more advanced approach might involve a tool to analyze the system
and
> > flow
> > > > configurations. Either way, it seems that some additional work in a
> > minor
> > > > release version is necessary before considering a major release
> > version.
> > > >
> > > > One other point on compatibility: as long as the core component API
> > > > definition remains backwards compatible, it should be possible to
run
> > older
> > > > components. This provides a transition option for customers using
> > > > components such as PostHTTP, or any others that are not actively
> > > > maintained. At some point it may become necessary to break
> > compatibility at
> > > > that level, but at least for version 2, maintaining component API
> > > > compatibility is key.
> > > >
> > > > Regards,
> > > > David Handermann
> > > >
> > > > On Sun, Aug 1, 2021 at 10:23 AM Mark Bean <mark.o.b...@gmail.com>
> > wrote:
> > > >
> > > >> I created a JIRA ticket to investigate and improve the performance
> of
> > > >> InvokeHTTP. It includes a flow definition for benchmarking the
> > performance
> > > >> of both PostHTTP and InvokeHTTP.
> > > >>
> > > >> https://issues.apache.org/jira/browse/NIFI-8968
> > > >>
> > > >> Thanks,
> > > >> Mark
> > > >>
> > > >> On Fri, Jul 30, 2021 at 6:41 PM Adam Taft <a...@adamtaft.com>
> wrote:
> > > >>
> > > >>> I'm not seeing the side thread that was going to discuss
> deprecation
> > of
> > > >>> PostHTTP. Has that thread started and I just don't see it?
> > > >>>
> > > >>> One (significant?) concern with PostHTTP is the smooth
integration
> of
> > > >>> NiFi-to-NiFi communication that is very transparently enabled
with
> > the
> > > >>> ListenHTTP and PostHTTP processors. There's some special logic in
> > there
> > > >> for
> > > >>> handling flowfiles that InvokeHTTP doesn't really (nor should
> really)
> > > >> have.
> > > >>>
> > > >>> I know of several (large) NiFi installations that rely on the
> > PostHTTP /
> > > >>> ListenHTTP combination. It has enabled NiFi to NiFi communication
> for
> > > >> folks
> > > >>> reluctant or unable to enable site-to-site type configuration.
> > > >>>
> > > >>> Honestly, I don't know why we'd want to "deprecate" any
processor,
> as
> > > >>> opposed to just moving it to a new location. If these processors
> can
> > be
> > > >>> ported and maintained to whatever the 2.0 API looks like, there's
> > > >> possibly
> > > >>> little harm keeping them around.
> > > >>>
> > > >>> And by the way, what happened to the "marketplace" concept? Is
this
> > being
> > > >>> considered for 2.0 as well? Because relocating the deprecated
> > processors
> > > >>> to an external nar might be the best solution. Losing PostHTTP
> > entirely I
> > > >>> think would be a mistake, but I'd conceptually support relocating
> it.
> > > >>>
> > > >>> Thanks,
> > > >>>
> > > >>> /Adam
> > > >>>
> > > >>> On Tue, Jul 27, 2021 at 2:11 PM Joe Witt <joe.w...@gmail.com>
> wrote:
> > > >>>
> > > >>>> Looks like we just need to knock out 5 JIRAs :) [1]
> > > >>>>
> > > >>>> I felt like we had a label folks were using at one point but
> quickly
> > > >>>> looking revealed nothing exciting. After this confluence page
> > > >>>> stabilizes a bit we can probably knock out some JIRAs and such.
> > > >>>>
> > > >>>> [1]
> https://issues.apache.org/jira/projects/NIFI/versions/12339599
> > > >>>>
> > > >>>> On Tue, Jul 27, 2021 at 1:06 PM Otto Fowler <
> > ottobackwa...@gmail.com>
> > > >>>> wrote:
> > > >>>>>
> > > >>>>> I find myself wishing I had a list of all the jiras / issues
that
> > > >> have
> > > >>>>> been put off for a 2.0 release because they required some
change
> or
> > > >>>> another
> > > >>>>> :(
> > > >>>>>
> > > >>>>> From: Joe Witt <joe.w...@gmail.com> <joe.w...@gmail.com>
> > > >>>>> Reply: dev@nifi.apache.org <dev@nifi.apache.org> <
> > > >> dev@nifi.apache.org>
> > > >>>>> Date: July 27, 2021 at 12:30:35
> > > >>>>> To: dev@nifi.apache.org <dev@nifi.apache.org> <
> dev@nifi.apache.org
> > >
> > > >>>>> Subject: Re: [DISCUSS] NiFi 2.0 Release Goals
> > > >>>>>
> > > >>>>> A few thoughts:
> > > >>>>>
> > > >>>>> 1. I would love to see deprecation notices show up in the UI in
> > > >>>>> various ways to help motivate users to move off things to more
> > > >>>>> supportable things. That is not a prerequisite for anything
> > happening
> > > >>>>> however. Just a good feature/nice thing to do for users when
> > someone
> > > >>>>> is able to tackle it.
> > > >>>>>
> > > >>>>> 2. The decision to deprecate something and to further remove it
> > need
> > > >>>>> not mean there is a superior solution available. If that thing
> > itself
> > > >>>>> isn't getting the love/attention it needs to be
> > > >>>>> maintained/supported/healthy going forward that alone is enough
> to
> > > >>>>> remove it. That might well be the case with PostHTTP [1] and
for
> > > >>>>> comparison you can see how much effort has gone into InvokeHTTP
> > [2].
> > > >>>>>
> > > >>>>> 3. When discussing a 2.0 release each thing we add as a 'must
do'
> > the
> > > >>>>> further away from reality such a release will become. We'll
have
> to
> > > >>>>> get very specific about 'musts' vs 'wants'.
> > > >>>>>
> > > >>>>> [1]
> > > >>>>>
> > > >>>>
> > > >>>
> > > >>
> >
>
>
https://github.com/apache/nifi/commits/11e9ff377333784974fa55f41483c4281d80da50/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
> > > >>>>> [2]
> > > >>>>>
> > > >>>>
> > > >>>
> > > >>
> >
>
>
https://github.com/apache/nifi/commits/cc554a6b110dfa45767bcb13d834ea4265d6dfe6/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java
> > > >>>>>
> > > >>>>> On Tue, Jul 27, 2021 at 8:47 AM David Handermann
> > > >>>>> <exceptionfact...@apache.org> wrote:
> > > >>>>>>
> > > >>>>>> Thanks Mark, providing a template or comparison statistics
with
> > > >> Java
> > > >>>>>> versions and component configuration details would be very
> > helpful.
> > > >>> If
> > > >>>> it
> > > >>>>>> is possible to run tests using a public API or deployable
> service,
> > > >>> that
> > > >>>>>> would also help confirm potential differences.
> > > >>>>>>
> > > >>>>>> Showing a deprecation notice in the UI could be helpful,
perhaps
> > > >> as a
> > > >>>>>> configurable option. NIFI-8650 describes a general Flow
Analysis
> > > >>>>>> capability, and it seems like that might be one possible way
to
> > > >>> surface
> > > >>>>>> deprecation warnings. For something more specific to component
> > > >>>>> deprecation,
> > > >>>>>> it seems important to find a balance between making it obvious
> and
> > > >>>> making
> > > >>>>>> it something that ends up getting ignored.
> > > >>>>>>
> > > >>>>>> Regards,
> > > >>>>>> David Handermann
> > > >>>>>>
> > > >>>>>> On Tue, Jul 27, 2021 at 10:28 AM Mark Bean <
> mark.o.b...@gmail.com
> > >
> > > >>>> wrote:
> > > >>>>>>
> > > >>>>>>> I'll start a new thread for PostHTTP when I get a template
> and/or
> > > >>>>> detailed
> > > >>>>>>> stats.
> > > >>>>>>>
> > > >>>>>>> I know the deprecation is noted in the documentation. That's
a
> > > >>>>> necessary
> > > >>>>>>> and minimum level of notification. I was suggesting it be
more
> > > >>>> obvious
> > > >>>>> in
> > > >>>>>>> the UI. I think it would be beneficial to somehow be aware of
> the
> > > >>>>>>> deprecation status simply by looking at the flow (perhaps
even
> on
> > > >>> the
> > > >>>>>>> summary pages too), and without having to open the
> documentation
> > > >>> for
> > > >>>>> every
> > > >>>>>>> processor to confirm whether or not a component is marked as
> > > >>>>> deprecated.
> > > >>>>>>>
> > > >>>>>>> Thanks,
> > > >>>>>>> Mark
> > > >>>>>>>
> > > >>>>>>>
> > > >>>>>>> On Tue, Jul 27, 2021 at 11:16 AM David Handermann <
> > > >>>>>>> exceptionfact...@apache.org> wrote:
> > > >>>>>>>
> > > >>>>>>>> Mark,
> > > >>>>>>>>
> > > >>>>>>>> Thanks for the feedback. It may be better to start a
separate
> > > >>>> thread
> > > >>>>> on
> > > >>>>>>>> PostHTTP, but can you provide an example flow demonstrating
> the
> > > >>>>>>> performance
> > > >>>>>>>> differences between PostHTTP and InvokeHTTP?
> > > >>>>>>>>
> > > >>>>>>>> PostHTTP uses the Apache HttpComponents library, whereas
> > > >>> InvokeHTTP
> > > >>>>> uses
> > > >>>>>>>> OkHttp. NiFi 1.13.2 and 1.14.0 included major version
updates
> > > >> for
> > > >>>>> OkHttp,
> > > >>>>>>>> so it would be important to test with the most recent
version.
> > > >> It
> > > >>>> is
> > > >>>>> also
> > > >>>>>>>> worth noting that test classes for PostHTTP are now
> integration
> > > >>>> tests
> > > >>>>> as
> > > >>>>>>>> opposed to unit tests, which means they are not executed as
> > > >> part
> > > >>> of
> > > >>>>> the
> > > >>>>>>>> automated builds.
> > > >>>>>>>>
> > > >>>>>>>> The NiFi documentation includes the contents of the
> > > >>>> DeprecationNotice
> > > >>>>> for
> > > >>>>>>>> PostHTTP:
> > > >>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>
> > > >>>>>
> > > >>>>
> > > >>>
> > > >>
> >
>
>
https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.14.0/org.apache.nifi.processors.standard.PostHTTP/index.html
> > > >>>>>>>>
> > > >>>>>>>> Regards,
> > > >>>>>>>> David Handermann
> > > >>>>>>>>
> > > >>>>>>>> On Tue, Jul 27, 2021 at 9:56 AM Mark Bean <
> > > >> mark.o.b...@gmail.com
> > > >>>>
> > > >>>>> wrote:
> > > >>>>>>>>
> > > >>>>>>>>> I'm strongly in favor of reducing tech debt, and moving
> > > >>>>> deliberately
> > > >>>>>>> to a
> > > >>>>>>>>> 2.0 release. I have a concern with just one processor that
is
> > > >>>>> currently
> > > >>>>>>>>> marked as deprecated: PostHTTP. (I have not evaluated
> > > >>>> specifically
> > > >>>>> any
> > > >>>>>>>>> other deprecated components; I cannot say if there are or
are
> > > >>> not
> > > >>>>>>> similar
> > > >>>>>>>>> issues elsewhere.) I understand the rationale for
deprecating
> > > >>>> this
> > > >>>>>>>>> processor in that it eliminates a processor whose
> > > >> functionality
> > > >>>> is
> > > >>>>>>>>> available elsewhere, specifically in the more flexible
> > > >>>> InvokeHTTP.
> > > >>>>>>>> However,
> > > >>>>>>>>> in my experience and testing, PostHTTP performs transfers
> > > >> with
> > > >>>> far
> > > >>>>>>>> greater
> > > >>>>>>>>> throughput than InvokeHTTP. I would not be in favor of
> > > >> removing
> > > >>>>>>> PostHTTP
> > > >>>>>>>>> unless/until InvokeHTTP is refactored to increase its
> > > >>> throughput
> > > >>>>>>>>> capability.
> > > >>>>>>>>>
> > > >>>>>>>>> Has anyone else continued to use PostHTTP over InvokeHTTP
for
> > > >>>>> similar
> > > >>>>>>>>> reasons? Or, is there a performance-related configuration
for
> > > >>>>>>> InvokeHTTP
> > > >>>>>>>> I
> > > >>>>>>>>> may have missed?
> > > >>>>>>>>>
> > > >>>>>>>>> Also, in order to help facilitate a smooth transition to
2.0
> > > >>>> from a
> > > >>>>>>> user
> > > >>>>>>>>> perspective, would it be advisable to add some sort of
visual
> > > >>>>> indicator
> > > >>>>>>>> in
> > > >>>>>>>>> the UI for components that are currently annotated as
> > > >>>> @Deprecated?
> > > >>>>> This
> > > >>>>>>>>> might help users proactively modify their flow prior to a
> > > >>> release
> > > >>>>> that
> > > >>>>>>>>> would otherwise break it.
> > > >>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>> On Mon, Jul 26, 2021 at 5:02 PM Bryan Bende <
> > > >> bbe...@gmail.com>
> > > >>>>> wrote:
> > > >>>>>>>>>
> > > >>>>>>>>>> With the merging of MiNiFi and registry into the NiFi
repo,
> > > >>>> we've
> > > >>>>>>>>>> actually gone more towards a mono-repo where everything is
> > > >>>>> released
> > > >>>>>>>>>> together. Eventually it would still be nice to have a
> > > >> smaller
> > > >>>>> base
> > > >>>>>>>>>> distribution containing just the framework and standard
> > > >> NARs,
> > > >>>> but
> > > >>>>> it
> > > >>>>>>>>>> is hard to tackle that until we provide a way for users to
> > > >>>> easily
> > > >>>>>>>>>> obtain the NARs in some other way.
> > > >>>>>>>>>>
> > > >>>>>>>>>> On Mon, Jul 26, 2021 at 4:20 PM Edward Armes <
> > > >>>>> edward.ar...@gmail.com
> > > >>>>>>>>
> > > >>>>>>>>>> wrote:
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> Given the major version number shift and the spliting up
> > > >> of
> > > >>>>>>>> processors
> > > >>>>>>>>>> into
> > > >>>>>>>>>>> multiple NAR's. I'd like to suggest that we start
> > > >>>> individually
> > > >>>>>>>>> versioning
> > > >>>>>>>>>>> individual NARs/ bundles.
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> I can see this bringing a large number of benifits
> > > >>> including
> > > >>>>> making
> > > >>>>>>>>> Nifi
> > > >>>>>>>>>>> more deployable with things RPM, but also potentially
> > > >>>> allowing
> > > >>>>>>> those
> > > >>>>>>>>> that
> > > >>>>>>>>>>> have to deploy managed Nifi instances easier to upgrade.
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> Edward
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> On Mon, 26 Jul 2021, 20:42 Otto Fowler, <
> > > >>>> ottobackwa...@gmail.com>
> > > >>>>>
> > > >>>>>>>>> wrote:
> > > >>>>>>>>>>>
> > > >>>>>>>>>>>> The issue with updating the aws sdk is if it breaks any
> > > >>> one
> > > >>>>> of
> > > >>>>>>> the
> > > >>>>>>>>>>>> processors.
> > > >>>>>>>>>>>> the Web Gateway API invoke processor for example is not
> > > >>>> using
> > > >>>>> a
> > > >>>>>>>> high
> > > >>>>>>>>>> level
> > > >>>>>>>>>>>> purpose build client and may break.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> If we change the aws version, we need to coordinate in
> > > >>>> such a
> > > >>>>> way
> > > >>>>>>>>> that
> > > >>>>>>>>>> they
> > > >>>>>>>>>>>> all
> > > >>>>>>>>>>>> can come along reasonably.
> > > >>>>>>>>>>>> IE: what happens if 1 or 2 break but the rest or OK?
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> From: David Handermann <exceptionfact...@apache.org>
> > > >>>>>>>>>>>> <exceptionfact...@apache.org>
> > > >>>>>>>>>>>> Reply: dev@nifi.apache.org <dev@nifi.apache.org> <
> > > >>>>>>>>> dev@nifi.apache.org>
> > > >>>>>>>>>>>> Date: July 26, 2021 at 09:33:42
> > > >>>>>>>>>>>> To: dev@nifi.apache.org <dev@nifi.apache.org> <
> > > >>>>>>> dev@nifi.apache.org
> > > >>>>>>>>>
> > > >>>>>>>>>>>> Subject: Re: [DISCUSS] NiFi 2.0 Release Goals
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Chris,
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Thanks for the reply and recommendations. It seems like
> > > >>>> some
> > > >>>>> of
> > > >>>>>>> the
> > > >>>>>>>>>> work to
> > > >>>>>>>>>>>> reorganize the module structure could be done outside
> > > >> of
> > > >>> a
> > > >>>>> major
> > > >>>>>>>>>> release,
> > > >>>>>>>>>>>> but it would be great to target any breaking changes
> > > >> for
> > > >>>> 2.0.
> > > >>>>>>>>> Perhaps a
> > > >>>>>>>>>>>> separate feature proposal on module restructuring, with
> > > >>> the
> > > >>>>> goal
> > > >>>>>>> of
> > > >>>>>>>>>>>> supporting optimized builds, would be a helpful way to
> > > >>> move
> > > >>>>> that
> > > >>>>>>>> part
> > > >>>>>>>>>> of
> > > >>>>>>>>>>>> the discussion forward.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Regarding updating AWS SDK to version 2, it seems like
> > > >>> that
> > > >>>>> might
> > > >>>>>>>> be
> > > >>>>>>>>>>>> possible now. I haven't taken a close look at the
> > > >>>> referencing
> > > >>>>>>>>>> components,
> > > >>>>>>>>>>>> so I'm not sure about the level of effort involved.
> > > >> Minor
> > > >>>>> NiFi
> > > >>>>>>>>> version
> > > >>>>>>>>>>>> updates have incorporated major new versions of
> > > >>>> dependencies.
> > > >>>>> For
> > > >>>>>>>>>> example,
> > > >>>>>>>>>>>> NiFi 1.14 included an upgrade from Spring Framework 4
> > > >> to
> > > >>> 5.
> > > >>>>> On
> > > >>>>>>> the
> > > >>>>>>>>> one
> > > >>>>>>>>>>>> hand, including the AWS SDK update as part of a major
> > > >>>> release
> > > >>>>>>> seems
> > > >>>>>>>>>>>> helpful, but unless there are changes that break
> > > >> existing
> > > >>>>>>> component
> > > >>>>>>>>>>>> properties, upgrading the AWS SDK could be worked
> > > >>>>> independently.
> > > >>>>>>>>>> Others may
> > > >>>>>>>>>>>> have more insight into particular usage of that
> > > >> library.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Regards,
> > > >>>>>>>>>>>> David Handermann
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> On Sun, Jul 25, 2021 at 2:12 AM Chris Sampson
> > > >>>>>>>>>>>> <chris.samp...@naimuri.com.invalid> wrote:
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>> Might be worth considering refactoring the build as
> > > >>> part
> > > >>>> of
> > > >>>>>>> this
> > > >>>>>>>>> work
> > > >>>>>>>>>>>> too,
> > > >>>>>>>>>>>>> e.g. only building the bits of the repo affected by a
> > > >>>>> commit,
> > > >>>>>>>> etc.
> > > >>>>>>>>> -
> > > >>>>>>>>>>>>> discussed briefly in previous threads but don't think
> > > >>> any
> > > >>>>>>> changes
> > > >>>>>>>>>> made
> > > >>>>>>>>>>>> yet.
> > > >>>>>>>>>>>>> If NARs/components are likely to be split up and
> > > >>>> refactored
> > > >>>>>>> then
> > > >>>>>>>>> such
> > > >>>>>>>>>>>> work
> > > >>>>>>>>>>>>> around the build probably makes sense to consider.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> I've a couple of PRs open that include updates to
> > > >>>>> Elasticsearch
> > > >>>>>>>>>> versions
> > > >>>>>>>>>>>>> already, although I stopped at 7.10.2 (after which
> > > >>>> Elastic
> > > >>>>>>>> changed
> > > >>>>>>>>>>>> licence)
> > > >>>>>>>>>>>>> in case there were licence concerns. But more work
> > > >> can
> > > >>> be
> > > >>>>> done
> > > >>>>>>> to
> > > >>>>>>>>>> tidy up
> > > >>>>>>>>>>>>> the processors, absolutely.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> AWS libraries to v2 would seem a sensible move and a
> > > >>>>> refactor
> > > >>>>>>> of
> > > >>>>>>>>>> those
> > > >>>>>>>>>>>>> processors as well.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Cheers,
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Chris Sampson
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> On Sat, 24 Jul 2021, 17:47 David Handermann, <
> > > >>>>>>>>>>>> exceptionfact...@apache.org>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Thanks for pointing out the standard NAR bundles,
> > > >>> Mark.
> > > >>>>> There
> > > >>>>>>>>> are a
> > > >>>>>>>>>>>>> number
> > > >>>>>>>>>>>>>> of components in the standard NAR bundles with
> > > >>>> particular
> > > >>>>>>>>>> dependencies
> > > >>>>>>>>>>>>> that
> > > >>>>>>>>>>>>>> would make more sense in separate NARs.
> > > >> Reorganizing
> > > >>>> the
> > > >>>>>>>> standard
> > > >>>>>>>>>> NAR
> > > >>>>>>>>>>>> to
> > > >>>>>>>>>>>>>> components with limited dependencies and wide
> > > >>>>> applicability
> > > >>>>>>>> would
> > > >>>>>>>>>>>>>> definitely help with future maintenance.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Regards,
> > > >>>>>>>>>>>>>> David Handermann
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> On Sat, Jul 24, 2021 at 10:57 AM Mark Payne <
> > > >>>>>>>>> marka...@hotmail.com>
> > > >>>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> There’s also some code that exists in order to
> > > >>>> maintain
> > > >>>>>>>>> backward
> > > >>>>>>>>>>>>>>> compatibility in the repositories. I would very
> > > >>> much
> > > >>>>> like
> > > >>>>>>> the
> > > >>>>>>>>>>>>>> repositories
> > > >>>>>>>>>>>>>>> to contain no unnecessary code. And swap file
> > > >>> format
> > > >>>>>>> supports
> > > >>>>>>>>>> really
> > > >>>>>>>>>>>>> old
> > > >>>>>>>>>>>>>>> formats. And the old impls of the repositories
> > > >>>>> themselves,
> > > >>>>>>>> like
> > > >>>>>>>>>>>>>>> PersistentProvRepo instead of WriteAheadProv
> > > >> Repo,
> > > >>>> etc.
> > > >>>>>>> Lots
> > > >>>>>>>> of
> > > >>>>>>>>>> stuff
> > > >>>>>>>>>>>>>> there
> > > >>>>>>>>>>>>>>> that can be removed. And some methods in
> > > >>>> ProcessSession
> > > >>>>>>> that
> > > >>>>>>>>> are
> > > >>>>>>>>>>>> never
> > > >>>>>>>>>>>>>> used
> > > >>>>>>>>>>>>>>> by any processor in the codebase but exists in
> > > >> the
> > > >>>>> public
> > > >>>>>>> API
> > > >>>>>>>>> so
> > > >>>>>>>>>>>> can’t
> > > >>>>>>>>>>>>> be
> > > >>>>>>>>>>>>>>> removed till 2.0.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> I think his is also a great time to clean up the
> > > >>>>> “standard
> > > >>>>>>>>> nar.”
> > > >>>>>>>>>> At
> > > >>>>>>>>>>>>> this
> > > >>>>>>>>>>>>>>> point, it’s something like 70 MB. And many of the
> > > >>>>>>> components
> > > >>>>>>>>>> there
> > > >>>>>>>>>>>> are
> > > >>>>>>>>>>>>>> not
> > > >>>>>>>>>>>>>>> really “standard” - things like connecting to
> > > >> FTP &
> > > >>>>> SFTP
> > > >>>>>>>>>> servers, XML
> > > >>>>>>>>>>>>>>> processing, Jolt transform, etc. could
> > > >> potentially
> > > >>> be
> > > >>>>> moved
> > > >>>>>>>>> into
> > > >>>>>>>>>>>> other
> > > >>>>>>>>>>>>>>> nars. The
> > > >>>>> nifi-standard-content-viewer-1.15.0-SNAPSHOT.war
> > > >>>>>>> is
> > > >>>>>>>>>> 6.9 MB
> > > >>>>>>>>>>>> is
> > > >>>>>>>>>>>>>> not
> > > >>>>>>>>>>>>>>> necessary for stateless or minifi java. Lots of
> > > >>>> things
> > > >>>>>>>> probably
> > > >>>>>>>>>> to
> > > >>>>>>>>>>>>>>> reconsider within the standard nar.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> I definitely think this is a reasonable approach,
> > > >>> to
> > > >>>>> allow
> > > >>>>>>>> for
> > > >>>>>>>>> a
> > > >>>>>>>>>> 2.0
> > > >>>>>>>>>>>>> that
> > > >>>>>>>>>>>>>>> is not a huge feature release but allows the
> > > >>> project
> > > >>>> to
> > > >>>>> be
> > > >>>>>>>>>> simpler
> > > >>>>>>>>>>>> and
> > > >>>>>>>>>>>>>> more
> > > >>>>>>>>>>>>>>> nimble.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Thanks
> > > >>>>>>>>>>>>>>> -Mark
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Jul 24, 2021, at 10:59 AM, Mike Thomsen <
> > > >>>>>>>>>> mikerthom...@gmail.com
> > > >>>>>>>>>>>>>> <mailto:
> > > >>>>>>>>>>>>>>> mikerthom...@gmail.com>> wrote:
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Russell,
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> AFAICT from looking at Elastic's repos, the low
> > > >>> level
> > > >>>>> REST
> > > >>>>>>>>>> client is
> > > >>>>>>>>>>>>>>> still fine.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>
> > > >>>>>
> > > >>>>
> > > >>>
> > > >>
> >
>
>
https://github.com/elastic/elasticsearch/blob/e5518e07f13701e3bb3dcc6842b9023966752497/client/rest/src/main/java/org/elasticsearch/client/RestClient.java
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Our Elasticsearch support is spread over two NARs
> > > >>> at
> > > >>>>>>> present.
> > > >>>>>>>>> One
> > > >>>>>>>>>>>> uses
> > > >>>>>>>>>>>>>>> OkHttp and the other uses that low level Elastic
> > > >>> REST
> > > >>>>>>> client.
> > > >>>>>>>>>>>>>>> Therefore, I think we're fine on licensing for
> > > >> the
> > > >>>>> moment.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Mike
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 1:10 PM Russell Bateman <
> > > >>>>>>>>>>>> r...@windofkeltia.com
> > > >>>>>>>>>>>>>>> <mailto:r...@windofkeltia.com>> wrote:
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Bringing up Elastic also reminds me that the
> > > >>> Elastic
> > > >>>>>>>> framework
> > > >>>>>>>>>> has
> > > >>>>>>>>>>>> just
> > > >>>>>>>>>>>>>>> recently transitioned out of Open Source, so to
> > > >>>>> acknowledge
> > > >>>>>>>>> that,
> > > >>>>>>>>>>>> maybe
> > > >>>>>>>>>>>>>>> some effort toward OpenSearch--I say this not
> > > >>>>> understanding
> > > >>>>>>>>>> exactly
> > > >>>>>>>>>>>> how
> > > >>>>>>>>>>>>>>> this sort of thing is considered in a
> > > >> large-scale,
> > > >>>>>>>> world-class
> > > >>>>>>>>>>>> software
> > > >>>>>>>>>>>>>>> project like Apache NiFi. (I'm not a contributor,
> > > >>>> just
> > > >>>>> a
> > > >>>>>>>>> grateful
> > > >>>>>>>>>>>>>>> consumer.)
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Russ
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On 7/23/21 10:28 AM, Matt Burgess wrote:
> > > >>>>>>>>>>>>>>> Along with the itemized list for ancient
> > > >> components
> > > >>>> we
> > > >>>>>>> should
> > > >>>>>>>>>> look at
> > > >>>>>>>>>>>>>>> updating versions of drivers, SDKs, etc. for
> > > >>> external
> > > >>>>>>> systems
> > > >>>>>>>>>> such as
> > > >>>>>>>>>>>>>>> Elasticsearch, Cassandra, etc. There may be
> > > >>> breaking
> > > >>>>>>> changes
> > > >>>>>>>>> but
> > > >>>>>>>>>> 2.0
> > > >>>>>>>>>>>>>>> is probably the right time to get things up to
> > > >> date
> > > >>>> to
> > > >>>>> make
> > > >>>>>>>>> them
> > > >>>>>>>>>> more
> > > >>>>>>>>>>>>>>> useful to more people.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 12:21 PM Nathan Gough <
> > > >>>>>>>>>> thena...@gmail.com
> > > >>>>>>>>>>>>>> <mailto:
> > > >>>>>>>>>>>>>>> thena...@gmail.com>> wrote:
> > > >>>>>>>>>>>>>>> I'm a +1 for removing pretty much all of this
> > > >>> stuff.
> > > >>>>> There
> > > >>>>>>>> are
> > > >>>>>>>>>>>> security
> > > >>>>>>>>>>>>>>> implications to keeping old dependencies around,
> > > >> so
> > > >>>> the
> > > >>>>>>> more
> > > >>>>>>>>> old
> > > >>>>>>>>>> code
> > > >>>>>>>>>>>>> we
> > > >>>>>>>>>>>>>>> can remove the better. I agree that eventually we
> > > >>>> need
> > > >>>>> to
> > > >>>>>>>> move
> > > >>>>>>>>> to
> > > >>>>>>>>>>>>>>> supporting only Java 11+, and as our next release
> > > >>>> will
> > > >>>>>>>> probably
> > > >>>>>>>>>> be
> > > >>>>>>>>>>>>> about
> > > >>>>>>>>>>>>>> 4
> > > >>>>>>>>>>>>>>> - 6 months from now that doesn't seem too soon.
> > > >> We
> > > >>>>> could
> > > >>>>>>>>>> potentially
> > > >>>>>>>>>>>>>> break
> > > >>>>>>>>>>>>>>> this in two and remove the deprecated processors
> > > >>> and
> > > >>>>> leave
> > > >>>>>>>> 1.x
> > > >>>>>>>>> on
> > > >>>>>>>>>>>> Java
> > > >>>>>>>>>>>>> 8,
> > > >>>>>>>>>>>>>>> and finally start on 2.x which would support only
> > > >>>> Java
> > > >>>>> 11.
> > > >>>>>>>> I'm
> > > >>>>>>>>>> unsure
> > > >>>>>>>>>>>>> of
> > > >>>>>>>>>>>>>>> what implications changing the date and time
> > > >>> handling
> > > >>>>> would
> > > >>>>>>>>> have
> > > >>>>>>>>>> -
> > > >>>>>>>>>>>> for
> > > >>>>>>>>>>>>>>> running systems that use long term historical
> > > >> logs,
> > > >>>>>>>> unexpected
> > > >>>>>>>>>>>> impacts
> > > >>>>>>>>>>>>> to
> > > >>>>>>>>>>>>>>> time logging could be a problem.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> As Joe says I think feature work will have to be
> > > >>>>> dedicated
> > > >>>>>>> to
> > > >>>>>>>>>> 2.x and
> > > >>>>>>>>>>>>> we
> > > >>>>>>>>>>>>>>> could support 1.x for security fixes for some
> > > >>> period
> > > >>>> of
> > > >>>>>>> time.
> > > >>>>>>>>> 2.x
> > > >>>>>>>>>>>> seems
> > > >>>>>>>>>>>>>>> like a gargantuan task but it's probably time to
> > > >>> get
> > > >>>>>>> started.
> > > >>>>>>>>> Not
> > > >>>>>>>>>>>> sure
> > > >>>>>>>>>>>>>> how
> > > >>>>>>>>>>>>>>> we handle all open PRs and the transition between
> > > >>> 1.x
> > > >>>>> and
> > > >>>>>>>> 2.x.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 10:57 AM Joe Witt <
> > > >>>>>>>> joe.w...@gmail.com
> > > >>>>>>>>>>>> <mailto:
> > > >>>>>>>>>>>>>>> joe.w...@gmail.com>> wrote:
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Jon
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> You're right we have to be careful and you're
> > > >> right
> > > >>>>> there
> > > >>>>>>> are
> > > >>>>>>>>>> still
> > > >>>>>>>>>>>>>>> significant Java 8 users out there. But we also
> > > >>> have
> > > >>>> to
> > > >>>>> be
> > > >>>>>>>>>> careful
> > > >>>>>>>>>>>>>>> about security and sustainability of the
> > > >> codebase.
> > > >>> If
> > > >>>>> we
> > > >>>>>>> had
> > > >>>>>>>>>> talked
> > > >>>>>>>>>>>>>>> about this last year when that article came out
> > > >> I'd
> > > >>>>> have
> > > >>>>>>>> agreed
> > > >>>>>>>>>> it is
> > > >>>>>>>>>>>>>>> too early. Interestingly that link seems to get
> > > >>>> updated
> > > >>>>>>> and I
> > > >>>>>>>>>> tried
> > > >>>>>>>>>>>>>>> [1] and found more recent data (not sure how
> > > >>> recent).
> > > >>>>>>> Anyway
> > > >>>>>>>> it
> > > >>>>>>>>>>>>>>> suggests Java 8 is still the top dog but we see
> > > >>> good
> > > >>>>> growth
> > > >>>>>>>> on
> > > >>>>>>>>>> 11. In
> > > >>>>>>>>>>>>>>> my $dayjob this aligns to what I'm seeing too.
> > > >>>>> Customers
> > > >>>>>>>> didn't
> > > >>>>>>>>>> seem
> > > >>>>>>>>>>>>>>> to care about Java 11 until later half last year
> > > >>> and
> > > >>>>> now
> > > >>>>>>>>>> suddenly it
> > > >>>>>>>>>>>>>>> is all over the place.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> I think once we put out a NiFi 2.0 release we'd
> > > >> see
> > > >>>>> rapid
> > > >>>>>>>>>> decrease in
> > > >>>>>>>>>>>>>>> work on the 1.x line just being blunt. We did
> > > >> this
> > > >>>> many
> > > >>>>>>> years
> > > >>>>>>>>> ago
> > > >>>>>>>>>>>>>>> with 0.x to 1.x and we stood behind 0.x for a
> > > >> while
> > > >>>>> (maybe
> > > >>>>>>> a
> > > >>>>>>>>>> year or
> > > >>>>>>>>>>>>>>> so) but it was purely bug fix/security related
> > > >>> bits.
> > > >>>> We
> > > >>>>>>> would
> > > >>>>>>>>>> need to
> > > >>>>>>>>>>>>>>> do something similar. But feature work would
> > > >> almost
> > > >>>>>>> certainly
> > > >>>>>>>>> go
> > > >>>>>>>>>> to
> > > >>>>>>>>>>>>>>> the 2.x line. Maybe there are other workable
> > > >> models
> > > >>>> but
> > > >>>>> my
> > > >>>>>>>>>> instinct
> > > >>>>>>>>>>>>>>> suggests this is likely to follow a similar path.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> ...anyway I agree it isn't that easy of a call to
> > > >>>> dump
> > > >>>>> Java
> > > >>>>>>>> 8.
> > > >>>>>>>>> We
> > > >>>>>>>>>>>>>>> need to make the call in both the interests of
> > > >> the
> > > >>>> user
> > > >>>>>>> base
> > > >>>>>>>>> and
> > > >>>>>>>>>> the
> > > >>>>>>>>>>>>>>> contributor base of the community.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> [1]
> > > >>>> https://www.jetbrains.com/lp/devecosystem-2021/java/
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Thanks
> > > >>>>>>>>>>>>>>> Joe
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 7:46 AM Joe Witt <
> > > >>>>>>> joe.w...@gmail.com
> > > >>>>>>>>>> <mailto:
> > > >>>>>>>>>>>>>>> joe.w...@gmail.com>> wrote:
> > > >>>>>>>>>>>>>>> Russ
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Yeah the flow registry is a key part of it. But
> > > >>> also
> > > >>>>> now
> > > >>>>>>> you
> > > >>>>>>>>> can
> > > >>>>>>>>>>>>>>> download the flow definition in JSON (upload i
> > > >>> think
> > > >>>> is
> > > >>>>>>> there
> > > >>>>>>>>> now
> > > >>>>>>>>>>>>>>> too). Templates offered a series of challenges
> > > >> such
> > > >>>> as
> > > >>>>> we
> > > >>>>>>>> store
> > > >>>>>>>>>> them
> > > >>>>>>>>>>>>>>> in the flow definition which has made flows
> > > >> massive
> > > >>>> in
> > > >>>>> an
> > > >>>>>>>>>> unintended
> > > >>>>>>>>>>>>>>> way which isn't fun for cluster behavior.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> We have a couple cases where we headed down a
> > > >>>>> particular
> > > >>>>>>>>> concept
> > > >>>>>>>>>> and
> > > >>>>>>>>>>>>>>> came up with better approaches later. We need to
> > > >>>>> reconcile
> > > >>>>>>>>> these
> > > >>>>>>>>>> with
> > > >>>>>>>>>>>>>>> the benefit of hindsight, and while being careful
> > > >>> to
> > > >>>> be
> > > >>>>> not
> > > >>>>>>>>>> overly
> > > >>>>>>>>>>>>>>> disruptive to existing users, to reduce the
> > > >>>>>>>>> codebase/maintenance
> > > >>>>>>>>>>>>>>> burden and allow continued evolution of the
> > > >>> project.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Thanks
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 7:43 AM Russell Bateman <
> > > >>>>>>>>>>>> r...@windofkeltia.com
> > > >>>>>>>>>>>>>>> <mailto:r...@windofkeltia.com>>
> > > >>>>>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>>>> Joe,
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> I apologize for the off-topic intrusion, but what
> > > >>>>> replaces
> > > >>>>>>>>>> templates?
> > > >>>>>>>>>>>>>>> The Registry? Templates rocked and we have used
> > > >>> them
> > > >>>>> since
> > > >>>>>>>>> 0.5.x.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Russ
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On 7/23/21 8:31 AM, Joe Witt wrote:
> > > >>>>>>>>>>>>>>> David,
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> I think this is a highly reasonable approach and
> > > >>>> such a
> > > >>>>>>> focus
> > > >>>>>>>>>> will
> > > >>>>>>>>>>>>>>> greatly help make a 2.0 release far more
> > > >>> approachable
> > > >>>>> to
> > > >>>>>>>> knock
> > > >>>>>>>>>> out.
> > > >>>>>>>>>>>>>>> Not only that but tech debt reduction would help
> > > >>> make
> > > >>>>> work
> > > >>>>>>>>>> towards
> > > >>>>>>>>>>>>>>> major features we'd think about in a 'major
> > > >>> release'
> > > >>>>> sense
> > > >>>>>>>> more
> > > >>>>>>>>>>>>>>> approachable.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> We should remove all deprecated things (as well
> > > >> as
> > > >>>>> verify
> > > >>>>>>> we
> > > >>>>>>>>>> have the
> > > >>>>>>>>>>>>>>> right list). We should remove/consider removal of
> > > >>>>>>> deprecated
> > > >>>>>>>>>>>>>>> concepts
> > > >>>>>>>>>>>>>>> like templates. We should consider whether we can
> > > >>>>> resolve
> > > >>>>>>> the
> > > >>>>>>>>>>>>>>> various
> > > >>>>>>>>>>>>>>> ways we've handled what are now parameters down
> > > >> to
> > > >>>> one
> > > >>>>>>> clean
> > > >>>>>>>>>>>>>>> approach.
> > > >>>>>>>>>>>>>>> We should remove options in the nifi.properties
> > > >>> which
> > > >>>>> turn
> > > >>>>>>>> out
> > > >>>>>>>>> to
> > > >>>>>>>>>>>>>>> never be used quite right (if there are). There
> > > >> is
> > > >>>>> quite a
> > > >>>>>>>> bit
> > > >>>>>>>>> we
> > > >>>>>>>>>>>>>>> can
> > > >>>>>>>>>>>>>>> do purely in the name of tech debt reduction.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Lots to consider here but I think this is the
> > > >> right
> > > >>>>>>>> discussion.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Than ks
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 7:26 AM Bryan Bende <
> > > >>>>>>>> bbe...@gmail.com
> > > >>>>>>>>>>>> <mailto:
> > > >>>>>>>>>>>>>>> bbe...@gmail.com>>
> > > >>>>>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>>>> I'm a +1 for this... Not sure if this falls under
> > > >>>>> "Removing
> > > >>>>>>>>>>>>>>> Deprecated
> > > >>>>>>>>>>>>>>> Components", but I think we should also look at
> > > >>>>> anything
> > > >>>>>>> that
> > > >>>>>>>>> has
> > > >>>>>>>>>>>>>>> been
> > > >>>>>>>>>>>>>>> marked as deprecated throughout the code base as
> > > >> a
> > > >>>>>>> candidate
> > > >>>>>>>>> for
> > > >>>>>>>>>>>>>>> removal. There are quite a few classes, methods,
> > > >>>>>>> properties,
> > > >>>>>>>>> etc
> > > >>>>>>>>>>>>>>> that
> > > >>>>>>>>>>>>>>> have been waiting for a chance to be removed.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 10:13 AM David Handermann
> > > >>>>>>>>>>>>>>> <exceptionfact...@apache.org<mailto:
> > > >>>>>>>>> exceptionfact...@apache.org
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>>>> Team,
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> With all of the excellent work that many have
> > > >>>>> contributed
> > > >>>>>>> to
> > > >>>>>>>>> NiFi
> > > >>>>>>>>>>>>>>> over the
> > > >>>>>>>>>>>>>>> years, the code base has also accumulated some
> > > >>> amount
> > > >>>>> of
> > > >>>>>>>>>> technical
> > > >>>>>>>>>>>>>>> debt. A
> > > >>>>>>>>>>>>>>> handful of components have been marked as
> > > >>> deprecated,
> > > >>>>> and
> > > >>>>>>>> some
> > > >>>>>>>>>>>>>>> components
> > > >>>>>>>>>>>>>>> remain in the code base to support integration
> > > >> with
> > > >>>> old
> > > >>>>>>>>> versions
> > > >>>>>>>>>>>>>>> of various
> > > >>>>>>>>>>>>>>> products. Following the principles of semantic
> > > >>>>> versioning,
> > > >>>>>>>>>>>>>>> introducing a
> > > >>>>>>>>>>>>>>> major release would provide the opportunity to
> > > >>> remove
> > > >>>>> these
> > > >>>>>>>>>>>>>>> deprecated and
> > > >>>>>>>>>>>>>>> unsupported components.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Rather than focusing the next major release on
> > > >> new
> > > >>>>>>> features,
> > > >>>>>>>>> what
> > > >>>>>>>>>>>>>>> do you
> > > >>>>>>>>>>>>>>> think about focusing on technical debt removal?
> > > >>> This
> > > >>>>>>> approach
> > > >>>>>>>>>>>>>>> would not
> > > >>>>>>>>>>>>>>> make for the most interesting release, but it
> > > >>>> provides
> > > >>>>> the
> > > >>>>>>>>>>>>>>> opportunity to
> > > >>>>>>>>>>>>>>> clean up elements that involve breaking changes.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Focusing on technical debt, at least three
> > > >> primary
> > > >>>>> goals
> > > >>>>>>> come
> > > >>>>>>>>> to
> > > >>>>>>>>>>>>>>> mind for
> > > >>>>>>>>>>>>>>> the next major release:
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> 1. Removal of deprecated and unmaintained
> > > >>> components
> > > >>>>>>>>>>>>>>> 2. Require Java 11 as the minimum supported
> > > >> version
> > > >>>>>>>>>>>>>>> 3. Transition internal date and time handling to
> > > >>> JSR
> > > >>>>> 310
> > > >>>>>>>>>> java.time
> > > >>>>>>>>>>>>>>> components
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> *Removing Deprecated Components*
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Removing support for older and deprecated
> > > >>> components
> > > >>>>>>>> provides a
> > > >>>>>>>>>>>>>>> great
> > > >>>>>>>>>>>>>>> opportunity to improve the overall security
> > > >> posture
> > > >>>>> when it
> > > >>>>>>>>> comes
> > > >>>>>>>>>>>>>>> to
> > > >>>>>>>>>>>>>>> maintaining dependencies. The OWASP dependency
> > > >>> plugin
> > > >>>>>>> report
> > > >>>>>>>>>>>>>>> currently
> > > >>>>>>>>>>>>>>> generates 50 MB of HTML for questionable
> > > >>>> dependencies,
> > > >>>>> many
> > > >>>>>>>> of
> > > >>>>>>>>>>>>>>> which are
> > > >>>>>>>>>>>>>>> related to old versions of various libraries.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> As a starting point, here are a handful of
> > > >>> components
> > > >>>>> and
> > > >>>>>>>>>>>>>>> extension modules
> > > >>>>>>>>>>>>>>> that could be targeted for removal in a major
> > > >>>> version:
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> - PostHTTP and GetHTTP
> > > >>>>>>>>>>>>>>> - ListenLumberjack and the entire
> > > >>>>> nifi-lumberjack-bundle
> > > >>>>>>>>>>>>>>> - ListenBeats and the entire nifi-beats-bundle
> > > >>>>>>>>>>>>>>> - Elasticsearch 5 components
> > > >>>>>>>>>>>>>>> - Hive 1 and 2 components
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> *Requiring Java 11*
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Java 8 is now over seven years old, and NiFi has
> > > >>>>> supported
> > > >>>>>>>>>> general
> > > >>>>>>>>>>>>>>> compatibility with Java 11 for several years.
> > > >> NiFi
> > > >>>>> 1.14.0
> > > >>>>>>>>>>>>>>> incorporated
> > > >>>>>>>>>>>>>>> internal improvements specifically related to TLS
> > > >>>> 1.3,
> > > >>>>>>> which
> > > >>>>>>>>>>>>>>> allowed
> > > >>>>>>>>>>>>>>> closing out the long-running Java 11
> > > >> compatibility
> > > >>>> epic
> > > >>>>>>>>>> NIFI-5174.
> > > >>>>>>>>>>>>>>> Making
> > > >>>>>>>>>>>>>>> Java 11 the minimum required version provides the
> > > >>>>>>> opportunity
> > > >>>>>>>>> to
> > > >>>>>>>>>>>>>>> address
> > > >>>>>>>>>>>>>>> any lingering edge cases and put NiFi in a better
> > > >>>>> position
> > > >>>>>>> to
> > > >>>>>>>>>>>>>>> support
> > > >>>>>>>>>>>>>>> current Java versions.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> *JSR 310 for Date and Time Handling*
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Without making the scope too broad, transitioning
> > > >>>>> internal
> > > >>>>>>>> date
> > > >>>>>>>>>>>>>>> and time
> > > >>>>>>>>>>>>>>> handling to use DateTimeFormatter instead of
> > > >>>>>>> SimpleDateFormat
> > > >>>>>>>>>>>>>>> would provide
> > > >>>>>>>>>>>>>>> a number of advantages. The Java Time components
> > > >>>>> provide
> > > >>>>>>> much
> > > >>>>>>>>>>>>>>> better
> > > >>>>>>>>>>>>>>> clarity when it comes to handling localized date
> > > >>> and
> > > >>>>> time
> > > >>>>>>>>>>>>>>> representations,
> > > >>>>>>>>>>>>>>> and also avoid the inherent confusion of
> > > >>>> java.sql.Date
> > > >>>>>>>>> extending
> > > >>>>>>>>>>>>>>> java.util.Date. Many internal components,
> > > >>>> specifically
> > > >>>>>>>>>>>>>>> Record-oriented
> > > >>>>>>>>>>>>>>> processors and services, rely on date parsing,
> > > >>>> leading
> > > >>>>> to
> > > >>>>>>>>>>>>>>> confusion and
> > > >>>>>>>>>>>>>>> various workarounds. The pattern formats of
> > > >>>>>>> SimpleDateFormat
> > > >>>>>>>>> and
> > > >>>>>>>>>>>>>>> DateTimeFormatter are very similar, but there
> > > >> are a
> > > >>>> few
> > > >>>>>>>> subtle
> > > >>>>>>>>>>>>>>> differences.
> > > >>>>>>>>>>>>>>> Making this transition would provide a much
> > > >> better
> > > >>>>>>> foundation
> > > >>>>>>>>>>>>>>> going forward.
> > > >>>>>>>>>>>>>>> *Conclusion*
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Thanks for giving this proposal some
> > > >> consideration.
> > > >>>>> Many of
> > > >>>>>>>> you
> > > >>>>>>>>>>>>>>> have been
> > > >>>>>>>>>>>>>>> developing NiFi for years and I look forward to
> > > >>> your
> > > >>>>>>>> feedback.
> > > >>>>>>>>> I
> > > >>>>>>>>>>>>>>> would be
> > > >>>>>>>>>>>>>>> glad to put together a more formalized
> > > >>> recommendation
> > > >>>>> on
> > > >>>>>>>>>>>>>>> Confluence and
> > > >>>>>>>>>>>>>>> write up Jira epics if this general approach
> > > >> sounds
> > > >>>>>>> agreeable
> > > >>>>>>>>> to
> > > >>>>>>>>>>>>>>> the
> > > >>>>>>>>>>>>>>> community.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Regards,
> > > >>>>>>>>>>>>>>> David Handermann
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>
> > > >>>>
> > > >>>
> > > >>
> > >
> >
> >
>

Reply via email to