Orkestia
Blog
Build apps

Backend

An Orkestia app has no server to run — its backend is compositions of catalog workflows, exposed to signed-in users, plus schedules and approvals.

Your app's backend is a set of compositions: layers of existing catalog workflows with every input wired from input, step or static. Saved, a composition is a normal workflow type, virtual.<composition_uuid>@<version>.

There is no backend repository to deploy for this. Orkestia's rule is reuse first: reuse a live workflow, then compose, then add a generic workflow to the library that already owns that provider.

The parts

PartWhat it doesDetail
CompositionYour logic as structure, run by the engine with org scoping, history and retryCompositions, Virtual workflows
ExposureWhich composition versions a signed-in end-user may start (identity.app.expose-virtual-workflow)End-user data
DataRows the composition reads and writes, scoped from the tokenApp Data
SchedulesRun a workflow on a timer or a cron time with a timezone (schedule.create, pause, resume, update, delete)Keep scheduled compositions cheap
TriggersStart a composition when rows of an App Data table are inserted or updated (trigger.create), instead of pollingKeep scheduled compositions cheap
ApprovalsPut a human decision in the middle of a run (approval.request.*)Governance and approvals
ProcessesWhen you need real code, launch a container on App HostWebsite and process

What the platform guarantees

  • An end-user token can start only exposed virtual workflows, never raw catalog types.
  • The end-user principal is injected from the verified token. A caller cannot set or override it.
  • Every run has append-only history and can be retried, and is visible in Lumen.

When a composition is not enough

Use a process on App Host for long-lived listeners or code that cannot be expressed as catalog steps. It still reaches App Data through a database attachment, not a pasted connection string.