I'm still having several issues with JS scripting in Nifi:

1. Nifi versions past 1.14 take a very long time to validate JS scripted
processors, to the point where processor validation starts timing out and
failing. I haven't created an issue specifically about this as we don't
have simple instructions to replicate, but I can document this if it would
help.

2. In the long term, relying on Nashorn means I can't upgrade to a JDK
version higher than JDK11, and won't be able to use Nifi 2.x when it
releases.

3. Nashorn only fully supports ES5.1, with some support for ES6 features.
This means I have to use several polyfills, making scripts larger and
(probably) contributing to startup time issues. For example, a 100 line
source script becomes ~4000 lines to make modern Javascript run
consistently. I have experimented with enabling and disabling various Babel
plugins and polyfills but have not been able to achieve a consistent result.

These issues above and my reliance on JS scripting means I can't upgrade
Nifi past 1.14 in production. Not being able to upgrade means not getting
any of the new Nifi features and improvements, which is becoming
increasingly difficult. Is anybody else impacted by these issues?

David mentioned that there are plans to entirely redo the scripting
implementation in Nifi 2.x:

https://lists.apache.org/thread/ssc19kxoz89g0y0wcfvb410f4x1qwkdg

Is there a timeline yet, or is JS scripting going to be unavailable in
modern Nifi for the foreseeable future?

One potential option is replacing Nashorn with Graal - see comments here:

https://issues.apache.org/jira/browse/NIFI-6229

The impression I have is that using scripted processors is fairly common
and a popular feature, but maybe most other people use Python or Groovy and
I'm the odd one out using JS?


Dirk Arends

Reply via email to