The native runtime allows functions to be defined and run inside workflow engine itself. This will allow small functions (such as control flow constructs or other trivial functions) to be run without adding the usual network overhead. Currently, functions will be resolved with any of the runtimes, but a user can constrain a function to a specific runtime using the <runtime>:<function> syntax. For example, to constrain a function to be resolved to the internal runtime, the function should be defined as internal:noop.
This PR also introduces selectors, which is a common feature in workflow engines. The user is able to select specific data using a JSONPath-like syntax. For example to require an invocation input variable, $.invocation.inputs.default.
Additional changes:
Update tests
Various refactoring
Introduction of multiple (function execution) runtimes. Functions will get resolved using any of the runtimes.
The native runtime allows functions to be defined and run inside workflow engine itself. This will allow small functions (such as control flow constructs or other trivial functions) to be run without adding the usual network overhead. Currently, functions will be resolved with any of the runtimes, but a user can constrain a function to a specific runtime using the
<runtime>:<function>
syntax. For example, to constrain a function to be resolved to the internal runtime, the function should be defined asinternal:noop
.This PR also introduces selectors, which is a common feature in workflow engines. The user is able to select specific data using a JSONPath-like syntax. For example to require an invocation input variable,
$.invocation.inputs.default
.Additional changes: