Runnable tasks are data processing tasks incl. file system operations, API calls, database queries, etc. These tasks can be compute-intensive and are processed by workers.

Each task must have an identifier (id) and a type. The type is the task's Java Fully Qualified Class Name (FQCN).

Tasks have properties specific to the type of the task; check each task's documentation for the list of available properties.

Most available tasks are Runnable Tasks except special ones that are Flowable Tasks.

By default, Kestra only includes a few Runnable Tasks. However, many of them are available as plugins, and if you use our default Docker image, plenty of them will already be included.

Example

In this example, we have 2 Runnable Tasks: one which makes a HTTP request and another that logs the output of that request.

yaml
id: runnable_http
namespace: tasks

tasks:
  - id: make_request
    type: io.kestra.plugin.fs.http.Request
    uri: https://reqres.in/api/products
    method: GET
    contentType: application/json

  - id: print_status
    type: io.kestra.core.tasks.log.Log
    message: "{{ outputs.make_request.body }}"