Uploaded image for project: 'Serverless logic'
  1. Serverless logic
  2. SRVLOGIC-8

[core] Workflow basic constructs

XMLWordPrintable

    • Icon: Feature Feature
    • Resolution: Done
    • Icon: Blocker Blocker
    • 1.24.0
    • None
    • serverless-workflow
    • None
    • False
    • None
    • False
    • 2022 Week 32-34 (from Aug 8)

      Motivation

      Basic constructs of Serverless workflow specification are essential capabilities to make workflow definitions possible.

      Goal

      Provide the basic workflow constructs

      Scenarios

      As a developer, I need to identify my workflow and its future versions so that I can trigger the right workflow definition and version.

      As a developer, I need to define data inputs and validate them according to the given JSON schema so that the workflow and services receive correct data.

      As a developer, I need to modify the payload so that the function gets the data structure it expects.

      As a developer, I need to make data-based and event-based decisions so that workflow can transition to various flow branches.

      As a developer, I need actions and remote services to be processed in parallel so that they do not block each other.

      As a developer, I need to define workflow states which are processed for each element of a data array so that the operations and services execute once for each array element.

      As a developer, I want to break down a workflow and move some states to a subflow so that I can keep the workflows simple.

      Expected outcomes

      Targeting partial support of Serverless workflow 0.8 spec. This is the full list of serverless workflow constructs: https://docs.google.com/document/d/1QUcW7wkKAElBXxd8wtEX9gkpodUcFN6dUxsL_HcTRL8/edit#

      Basic workflow constructs are functional and follow the Serverless workflow specification in the engine.

      Within the basic constructs and globally JQ is the recommended type of expressions.

      Paralell state processes actions one by one sharing the same execution thread - best to use with asynchronous calls.

      Subflows have to be part of the same project. Otherwise it’s possible to call another workflow service via operation state and OpenAPI.

      Versioning - write documentation on how to version processes with the use of Knative Serving Revisions and stating known limitations (in persistent storage, etc.)

      Out of scope

      Sleep state

      Data output schema validation is out of scope (on going discussion to add in v0.9 spec)

      Parallel state multitasking is out of scope SRVCOM-1851.

              ftirados Francisco Javier Tirado Sarti
              ibek1@redhat.com Ivo Bek
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: