Orkestia
Blog
Reference

Platform Services

The horizontal utility surfaces every integration and composition can lean on — inbound hooks, object storage, key-value state, schedules, queues, and control-flow primitives

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

FamilyRoleTypical use
hook.*Inbound eventsSaaS webhook → start a composition; redirect to Slack
storage.*Customer-bucket object storagePresigned upload/download around workflow runs; not App Host Files
kv.*Key-value stateSync cursors, flags, last-seen markers
schedule.*Time triggersNightly sync, periodic reconciliation
queue.*App-level queuesDecoupled producer/consumer hand-offs
control.*Data & flow logicFilter/branch/poll between composition steps
These families are what keep compositions honest. If you find yourself wanting a bespoke service next to Orkestia for state, files, cron, or glue logic — check this page first. The governed, recorded version usually already exists.