Skip to content

KNIX workflow extensions

Istemi Ekin Akkus edited this page Jul 15, 2020 · 3 revisions

The main workflow description language in KNIX is an extended version of Amazon State Language (ASL). KNIX tries to keep up with the description and recently added support for the newest state named Map state.

In this page, we document the extensions that are specific to KNIX workflows (i.e., migrating them to other platforms most probably will not work). Such workflows are marked as such in the GUI as "KNIX-specific" (commit 28e7d89 and commit f196f48). The usage of these extensions as well as their relevant API functions are documented with their respective warnings (Issue #50).

Example usage for all extensions can be found in the tests/asl_KNIX_flags. Additional example usage is listed after each item.

The complete list of KNIX-specific extensions:

  1. SessionFunction (bool): specifies whether this function is a session function (default: false) Example usage: tests/session_support, tests/dynamic_parallel_execution_groups.
  2. SessionFunctionParameters (dict): specifies the parameters of a session function (default: {}) Example usage: tests/session_support.
  3. EnableCheckpoints (bool): specifies whether checkpoints between states should be taken (default: true) Example usage: tests/performance_interaction_latency, tests/performance2, tests/java_workflow_manipulation.
  4. AllowImmediateMessages (bool): specifies whether functions can send immediate messages to other states to trigger them asynchronously (i.e., no response). The usage of sendToFunctionNow() API call can cause unexpected behavior, because the triggered state can continue making transitions in the workflow state machine. (default: false) Example usage: tests/dynamic_parallel_execution_groups, tests/java_workflow_manipulation, tests/session_support.
  5. WaitForNumBranches (list (int)): specifies how many branches of a Parallel state need to be finished before transitioning to the next state. There can be multiple such values and hence, multiple transitions. The usage of WaitForNumBranches can cause unexpected behavior, because the triggered state may continue making transitions in the wokflow state machine. (default: [num_total_branches_in_parallel]).
Clone this wiki locally