Skip to main content

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.