Workflow and Workflow group Lifecycle
  • 22 Feb 2022
  • 1 Minute to read
  • Dark
    Light
  • PDF

Workflow and Workflow group Lifecycle

  • Dark
    Light
  • PDF

Article Summary

A workflow is specified, deployed, and executed using the following sequence of steps:

  1. Develop filters in supported programming languages (Java, Python, Python-with-Tensorflow) or encapsulate an executable or a docker container.
    Note that ‘development’ typically refers to just the packaging of existing processing module implementations, as-is or with minimal wrapper code.
  2. Upload the filter implementation packages to Maven, pip and docker repositories respectively for Java, Python and docker filters.
  3. Write YAML specifications for filters and filter graphs.
  4. Write YAML specifications for one or more workflows to connect filter graphs to source and destination containers.
  5. Upload YAML specifications into the Akridata System using the AkriManager UI. This step does a validation of dependencies across YAML specifications, and adds the corresponding filters, filter graphs, and workflows into the Library described above so they are available for future reuse.
  6. Deploy one or more workflows onto physical or soft edge clusters. The same workflow in the library can be deployed to multiple edge clusters.
  7. Trigger workflow execution in one of the following ways:
    1. Asynchronously, e.g., as a result of a media insertion operation performed by an Operator user using the Operator App at a physical edge location; or
    2. Synchronously, e.g., using the AkriManager UI or invoking an API for soft edge processing
  8. Execute the workflow, which produces meta-data records and blobs, and data objects.
  9. If use case requires workflow groups then
    1. upload a workflow group YAML specification on the Akrimanager UI.
    2. Deploy workflow group onto clusters that are referred to in the workflow group specification.
    3. Trigger workflow group initiation and execution of workflows
      1. Asynchronously, e.g., as a result of registering a disk group on the operator app followed by media insertion operation performed by an Operator user using the Operator App at a physical edge location; or
      2. Synchronously, e.g., using the AkriManager UI or invoking an API for soft workflow group processing

Was this article helpful?