Platform Services
Beyond the integrations and the engine itself, the catalog ships a set of horizontal services — small workflow families that give compositions and agents the plumbing real automation needs: react to outside events, hold files and state, run on a clock, and shape data between steps. Like everything else they are typed, org-scoped workflows; this page maps them, and the reference catalog carries each contract.
Hooks — reacting to the outside world
The hook.* family receives inbound events — a webhook from a SaaS product, a provider callback — and turns them into workflow starts, so external systems can drive your compositions without you hosting an endpoint. A companion hook-redirect surface forwards selected events to destinations like Slack, and in local development the DevKit CLI polls and replays hooks to your machine so you can exercise event-driven flows without a public URL.
external system → hook endpoint (Orkestia) → workflow start / redirect
└── org-scoped, recorded run
Storage — files in your bucket
The storage.* family gives workflows and apps object storage in your cloud bucket (S3, R2, GCS) with presigned upload and download flows: a caller asks for an upload slot, ships bytes directly to storage, and downstream workflows reference the object — no credentials in your app. Bytes never sit on Orkestia infra. The media.* family builds on it for media-specific artifacts (images, audio, brand profiles, ingest).
Native files that belong to a hosted identity app are a different surface: the console Files tab (apphost.file.*) on site MinIO. See Files. Do not send org-member app files through storage.* unless you already have a customer bucket and meant BYO.
KV — small state between runs
The kv.* family is a scoped key-value store — the right place for the small persistent state compositions need between runs (cursors, flags, last-seen markers) without reaching for a database. Stores and keys are managed workflows, so state changes are recorded and org-scoped like everything else.
Schedules — running on a clock
The schedule.* family triggers workflows on a schedule — the cron surface for recurring compositions (nightly syncs, periodic reconciliation, report generation). A schedule is data attached to a workflow type and inputs; the runs it fires are ordinary, observable runs in Lumen.
Queues — decoupled hand-offs
The queue.* family provides managed queues for decoupled hand-offs between producers and consumers — buffering work between systems that shouldn't be coupled to each other's pace. (Engine-internal async is Kafka-backed and invisible to you; queue.* is the application-level surface.)
Control — shaping data between steps
The control.* family (~34 workflows) is the standard library for compositions: collection operations (filter, group-by, flatten, distinct), predicates and switches, text and math helpers, time, polling (control.poll-until), and value plumbing. When a composition needs logic between two integration calls, reach here before considering custom code.
At a glance
| Family | Role | Typical use |
|---|---|---|
hook.* | Inbound events | SaaS webhook → start a composition; redirect to Slack |
storage.* | Customer-bucket object storage | Presigned upload/download around workflow runs; not App Host Files |
kv.* | Key-value state | Sync cursors, flags, last-seen markers |
schedule.* | Time triggers | Nightly sync, periodic reconciliation |
queue.* | App-level queues | Decoupled producer/consumer hand-offs |
control.* | Data & flow logic | Filter/branch/poll between composition steps |
