Thanks for the replies!

I will move forward with drafting a NiFi Improvements Proposal page to
keep the discussion going.

Regards,
David Handermann

On Tue, Aug 20, 2024 at 3:22 PM Mark Payne <marka...@hotmail.com> wrote:
>
> David,
>
> +1 to all of this. Especially for guaranteeing compatibility and 
> maintainability, I think instrumenting a more
> formal approach for updating the API is a step in the right direction. The 
> huge amount of purging, cleanup,
> and refactoring that has gone into 2.0 helps to highlight the importance of 
> ensuring maintainability.
>
> Thanks
> -Mark
>
>
> > On Aug 20, 2024, at 2:00 AM, Joe Witt <joe.w...@gmail.com> wrote:
> >
> > David
> >
> > Yeah well written and good points.
> >
> > I dont think this says we would relax our existing commitment we have shown
> > for things such as the http based api but rather is calling out specific
> > things which we will make changes to even more formalized.
> >
> > To that end +1 on the concept of proposals and +1 to breaking out the
> > nifi-api (fundamental designed extension points for flow development) in
> > particular.
> >
> > Thanks
> > Joe
> >
> > On Fri, Aug 16, 2024 at 8:20 PM Adam Taft <a...@adamtaft.com> wrote:
> >
> >> These are all really appreciated concepts, David. Thank you for putting the
> >> thoughts and time in on this!
> >>
> >> Regarding this:
> >>> The NiFi REST API does not have quite the same level of concern, but may
> >> warrant inclusion.
> >>
> >> I hear what you're saying. However, the REST API (from my
> >> observation/experience) has gathered quite a number of useful tools and
> >> "hacks" for NiFi. Quite often, many different monitoring and alerting tools
> >> have been developed against the REST API by third parties and/or
> >> integrators of NiFi against their internal workflows. Having stable API
> >> versioning in the REST API possibly makes just as much sense as having the
> >> same for the nifi-api itself. This is a prime entry point for extensions
> >> and other features developed alongside NiFi, maybe even the weird stuff
> >> that you can't do with the nifi-api directly.
> >>
> >> Food for thought of course, but I would hope that we can treat the REST API
> >> as a proper first-class citizen in terms of documented versioning. It turns
> >> out it's quite a useful means for interacting with a running NiFi instance.
> >>
> >> /Adam
> >>
> >> On Fri, Aug 16, 2024 at 9:59 AM David Handermann <
> >> exceptionfact...@apache.org> wrote:
> >>
> >>> Team,
> >>>
> >>> As we wrap up remaining items for NiFi 2, we should consider how to
> >>> continue improving the quality and maintainability of the NiFi
> >>> ecosystem.
> >>>
> >>> One primary focus of NiFi 2 has been the reduction of technical debt,
> >>> which involved the removal of numerous modules and thousands of lines
> >>> of code. In that process, it is worth highlighting that the core NiFi
> >>> API, and the NiFi Framework API, and the NiFi REST API have had
> >>> comparatively few breaking changes. This a testament to the quality of
> >>> the API design itself. The NiFi Version Schema and API Compatibility
> >>> [1] has provided a strong direction thus far.
> >>>
> >>> With that background, we should consider adopting a more formal
> >>> process around changes that impact the fundamental API contracts that
> >>> NiFi provides. NiFi Feature Proposals [2] have provided elements of
> >>> this in the past, but did not include approval requirements. Kafka [3]
> >>> and Airflow [4] have more structured improvement proposal processes,
> >>> and that is what we should adopt going forward.
> >>>
> >>> Part of moving in this direction requires identifying the areas that
> >>> would require going through the Improvement Proposal process itself.
> >>> At minimum, this should include the nifi-api [5] module. The
> >>> nifi-framework-api [6] is also worth consideration for inclusion in
> >>> this category. The NiFi REST API does not have quite the same level of
> >>> concern, but may warrant inclusion.
> >>>
> >>> As part of this discussion, we should consider separating the nifi-api
> >>> module into its own repository, with its own versioning scheme. This
> >>> will provide a helpful distinction in terms of the scope of changes,
> >>> and allow the API to be released independently of the application,
> >>> providing strong version compatibility guarantees.
> >>>
> >>> Based on feedback for the general idea, I would be glad to draft a
> >>> NiFi Improvement Proposal page, outlining the recommended steps in
> >>> more detail so we can come to consensus on how this should work.
> >>>
> >>> Regards,
> >>> David Handermann
> >>>
> >>> [1]
> >>>
> >> https://cwiki.apache.org/confluence/display/NIFI/Version+Scheme+and+API+Compatibility
> >>> [2]
> >>> https://cwiki.apache.org/confluence/display/NIFI/NiFi+Feature+Proposals
> >>> [3]
> >>>
> >> https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
> >>> [4]
> >>>
> >> https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals
> >>> [5] https://github.com/apache/nifi/tree/main/nifi-api
> >>> [6] https://github.com/apache/nifi/tree/main/nifi-framework-api
> >>>
> >>
>

Reply via email to