Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Structure of a YAML workflow definition file

Inspecting Inspect the contents of hello.yaml you will note that Kuratorabove. Kurator-Akka expects each YAML workflow definition file to have a mapping (list of key-value pairs) as the top-level data structure. (a A colon in YAML indicates that the preceding string is a key, and that the following value or block of text is the value assigned to that key).  The valid keys of this top-level mapping are imports, types, and components, with the result that Kurator-Akka workflow definition files have up to three top-level sections, : an imports section, a types section, and a components section.  The hello.yaml file does not have a types section.

The imports section (the block of text following the imports line) must be a list (list items are preceded by a dash) of other YAML files to be included in the current workflow definition.  The value given to the components is the list of workflow components comprising the workflow.   We will focus on the workflow components for the remainder of this tutorial page.

Workflow components

The components section of hello.yaml contains declarations for two actors and for the workflow as whole.  Actors are the active, data processing components of workflow.  The workflow as a whole is considered a component as well, with the workflow component declaration containing references to the actor components that comprises the workflow.

Each component in hello.yaml is described by a mapping with three keys: id, type, and properties.  The id of a component is an arbitrary text string that is used to indicate to users of the workflow the function of the component. The id also enables components to refer to each other.  

The type of a component refers to a declaration in the type section of the current YAML file, or in a YAML file directly or indirectly included in the imports section.  Type declarations ultimately all refer to Java classes, and are covered in later tutorial.

Finally, components of have properties that represent the configuration of the component in the current workflow.