Tork is a platform that lets you run workflows (also referred to as "jobs"). A workflow is represented as a series of sequential steps (or tasks).

Jobs are typically authored in YAML format. Here's a very simple example.

# hello.yaml
name: hello job
  - name: say hello
    image: ubuntu:mantic
    run: |
      echo -n hello world
  - name: say goodbye
    image: ubuntu:mantic
    run: |
      echo -n bye world

A Tork installation generally consists of the following components:

  • Coordinator: The Coordinator is responsible for keeping track of jobs, dishing out work to be done by Worker nodes, handling task failures, retries and other job-level details. Unlike Worker nodes, the Coordinator does not execute actual work but delegate all task execution activities to Worker instances. Coordinators are stateless and leaderless.

  • Worker: Responsible for executing tasks by means of a runtime (typically Docker).

  • Broker: Responsible for routing tasks between the Coordinator and Worker nodes.

  • Datastore: holds the state for tasks and jobs.

  • Runtime: the platform used by workers to execute tasks.

Web UI