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.
Start here
QuickstartSign in to Foliot Console, register an app, push a workflow and watch your first run.Read more ▸Writing a workflowDefine steps, write handlers, mount them in your app and start runs.Read more ▸ConceptsRuns, tasks and signals, input versus state, versions and generations.Read more ▸API referenceEvery endpoint, parameter and response, generated from the OpenAPI document.Read more ▸
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 thefoliotCLI, for your app. - Your app: owns the business logic. It exposes one HTTP route that Foliot calls for each task.