Conductor: Replacing Nashorn with GraalVM

Created on 10 Jan 2020  路  4Comments  路  Source: Netflix/conductor

Hello,
Currently conductor is using nashorn as ScriptEngine to evaluate some Javascript code (for instance in the DECISION task, but potentially in the future everywhere in the workflow, cf. #1421).
Apparently Nashorn has been deprecated since jdk 11 and furthermore is providing few support for ECMAScript 6.
So I was thinking that maybe conductor could migrate to a new script engine: GraalVM.
It supports ES6 and it is faster.
Here an article showing that it can be set also to be backward compatible with nashorn script: https://medium.com/graalvm/oracle-graalvm-announces-support-for-nashorn-migration-c04810d75c1f

What do you think?

Most helpful comment

@andrea11 We ended up using Graal in our use of Conductor, and it's been working great. Also allows us to sandbox the code that's running and control execution time.

If there's interest from the Conductor folks, I'd be happy to take a crack at contributing back what we've done

All 4 comments

Linked with #1120

@andrea11 We ended up using Graal in our use of Conductor, and it's been working great. Also allows us to sandbox the code that's running and control execution time.

If there's interest from the Conductor folks, I'd be happy to take a crack at contributing back what we've done

@andrea11 Thanks for doing the research on this topic. This would definitely be a good addition and replacement for Nashorn in the long term.

@davidzzzzz Please feel free to submit a PR with your implementation and we will be happy to review and merge it for wider consumption.

@apanicker-nflx Great, will get something together!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

yosiat picture yosiat  路  4Comments

eder-santos picture eder-santos  路  5Comments

haigopi picture haigopi  路  5Comments

s50600822 picture s50600822  路  5Comments

RemcoBuddelmeijer picture RemcoBuddelmeijer  路  6Comments