Skip to main content

Workflows

Workflows are a single unit of work that the Flow server handles. Workflows are defined either by using the Flow CLI or the API by a third party client. Workflows are intended to be a generic but flexible concept that allows for a wide variety of applications. Workflows can be anything from backup tasks to content creation to media encoding. You can specify custom parameters that the processor can access to customize the handling. For example, you could specify in the parameters the backup compression level or media encoding format. All workflow events and outputs are stored by the Flow server and available over the API.

Inputs

Workflows define an input source. This source is automatically deployed to the processor upon scheduling. Input sources can be a source file or a group of other workflow outputs. By using other workflow outputs you can create a workflow pipeline that enables powerful multiprocessing such as media encoding and generation.

note

When using other workflows as an input Flow will wait until all input workflows are in a COMPLETE state before processing.

File Input
$> fctl workflows queue \
--name demo \
--type dev.ehazlett.flow.example \
--input-file render.png

The Flow CLI will upload the input file to the Flow server using GRPC. The Flow server will store the file in the storage server.

Workflow Inputs
$> fctl workflows queue \
--name demo \
--type dev.ehazlett.flow.example \
--input-workflow-id 104d8db7-f87e-468a-90ea-95db38158beb \
--input-workflow-id 56a46122-cf47-4fd4-a5fa-0bbcb99b8d0d