Keywords
Workflow - some process defined by user, it sequence of one step or many steps that do something, usually its run by some Schedule. Job, Pipeline all related terms
Workflow Engine - a tool, Django app created by Finmars SCSA that helps to create and execute Workflow. This service is absolutely separated from Finmars Platform (backend) due to security and logical concerns.
Schedule - part of Workflow Engine, this service allows to execute Workflow on some regular schedule (with crontab) and user can define Payload to that Schedule as well
Payload - an input of your Workflow, normally its a JSON object (dictionary) that will be passed into Workflow Code. Its accessible via kwargs.get("payload", None) Payload itself is user-defined as its workflows
Definition - old keyword, but basically its a YAML/JSON document that describes Workflow itself (meta-file)
Workflow (version 1) - First Generation of Worfklows, its defined in worfklow.json. This types are still supported, but deprecated. Consider using Workflow (version 2)
Example of its structure (JSON)
{
"workflow":
{
"user_code":"com.finmars.standard-workflow:simple-autoimport",
"is_manager": false,
"tasks": ["com.finmars.standard-workflow:simple-autoimport.task"]
}
}
Example of its structure (YAML)
workflow:
user_code: com.finmars.standard-workflow:collect-price
is_manager: false
tasks:
- com.finmars.standard-workflow:collect-price.task
Workflow (version 2) - Second Generation of Workflows, its defined in workflow.json. This structure is more complex and generated by Workflow Engine itself. But user still able to tune it manually.