-
Feature
-
Resolution: Done
-
Blocker
-
None
-
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.
- incorporates
-
KOGITO-7113 Use Quarkus Extension OpenAPI client gen VI: Modify examples to use the extension
- Resolved
-
KOGITO-7391 Validate references and required properties of SW definitions file during codegen
- Closed
-
KOGITO-6996 [KSW-Guides] How to deal with parallelism in Serverless Workflow
- Resolved
-
KOGITO-7257 [KSW-Guides] Accessing Workflow Metainfo in Runtime
- Resolved
-
KOGITO-7259 [KSW-Guides] Defining an input schema for Workflows
- Resolved
-
KOGITO-7293 [KSW-Guides] CNCF Serverless Workflow specification support
- Resolved
-
KOGITO-6984 [KSW-Guides] How to configure Kogito SW Services with Knative Service Revisions
- Closed
-
KOGITO-6773 [KSW] dataInputSchema should be used as the input model for KSW services
- Resolved
-
KOGITO-6985 [KSW] - Persistence: add workflow id and version as the constraint keys when persisting the flow state
- Resolved
-
KOGITO-6986 [KSW] - Implement DataOutputSchema for Workflows (specification tracking)
- Resolved
- is blocked by
-
KOGITO-6967 constants.getref returns null when the uri is set
- Resolved
-
KOGITO-6968 dataInput returns null when inline
- Resolved
- is related to
-
SRVLOGIC-6 [core] Parallel state multitasking in workflows
- Closed