Core Engine

Step Runner

The Step Runner is the heart of the platform — responsible for claiming tasks, executing workflow steps sequentially, managing context, and persisting results.

How the Runner Fits In

Database

Stores workflows, tasks, step definitions, logs, and schedules.

Scheduler

Creates tasks automatically based on cron or time-based triggers.

Step Runner

Claims tasks and executes steps in strict order.

Executor

Dispatches each step to the correct tool implementation.

Lifecycle of a Task

Polling

Runner polls for PENDING tasks that are ready to execute.

Claiming

Task is atomically marked RUNNING to prevent double execution.

Context Init

Initial execution context is created for the task.

Step Execution

Each step runs sequentially using the shared context.

Persistence

Step results and logs are written to the database.

Completion

Task is marked COMPLETED or FAILED.

Supported Step Types

LLM Step

Run prompts with context injection and memory support.

HTTP Step

Call external APIs with dynamic payloads.

File Step

Read and write files inside the sandboxed runtime.

Email Step

Send templated emails using workflow data.

Delay Step

Pause execution for a specified duration.

Browser Step

Take screenshots, evaluate scripts, extract content.

Execution Context & Memory

Every task maintains a mutable execution context that is passed between steps.

  • {{last}}references the previous step output
  • Named variables can be injected into prompts and payloads
  • Agent memory can persist facts across multiple tasks
Context is the glue that makes workflows intelligent

The Step Runner guarantees deterministic execution: each step runs only after the previous one completes successfully, with full access to all prior outputs.

Error Handling & Reliability

Failures

Errors are captured per step with stack traces and timestamps.

Retries

Steps can retry with backoff before marking the task as failed.