foliot docs

Foliot documentation

Foliot is a hosted workflow orchestrator for Tin Bee applications. The engine keeps the state, the clock and the history; your app keeps the business logic.

Describe a workflow as data, start runs against it, and Foliot calls your app for each step, over signed HTTP, with retries, timers and a full history.

  • A workflow is a versioned list of steps: task, sleep, wait, choice.
  • A run is one execution: a row that says “I am at step X, due at time T, on attempt N”.
  • Foliot pushes each task to your app over signed HTTP (or offers it to pull workers), records everything that happens, retries with backoff, waits for timers and signals, and lets an operator redrive, rewind, skip, pause a step or bulk-repair thousands of runs from Foliot Console.

Everything is one Postgres database. Any number of server replicas can run against it.

Foliot is four pieces:

  • Server (go/): the engine and the REST API. One binary, one Postgres database.
  • Foliot Console (apps/console): the web console, for the person on call. See Operating Foliot.
  • SDK (@foliot/sdk): definitions, typed handlers, a client and the foliot CLI, for your app.
  • Your app: owns the business logic. It exposes one HTTP route that Foliot calls for each task.