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