# Process definition

A process is a YAML file that describes the connections between events and tasks of services with a step-by-step system.

It is structured in the following way:

Attribute Type Description
name string Name of the process.
steps Step[] Steps to execute.

# Steps

A process has a list of steps. Each step indicates a specific action to do. There is currently three types of steps:

  • Trigger: an event or a task's result that will trigger the process.
    • Should be the first step of the process.
    • Only one trigger is possible per process.
    • It triggers the process when a matching event or a task's result is emitted.
  • Task: defines the task to execute of a given instance of a service.
    • A process should have at least one task and can have as many as you want.
  • Filter: stop the execution of the process if a condition doesn't match.
    • A process can have as many filters as you want.
    • Filters are optional.

# Example

Here is an example of typical process.

name: hello-world
steps:
  - type: trigger
    instance:
      src: https://github.com/liteflow-services/webhook
    eventKey: request
  - type: task
    instance:
      src: ./services/hello-world
    taskKey: hello
    inputs:
      name: { key: data.name }

Environmental variable

You can override any value in the process file during the compilation by using the following syntax:

$(env:XXXX)

Where XXXX is the name of the environmental variable defined in your .env file or given with a flag on the process:dev command.