Skip to content

Orchestra

A lightweight, plugin-based workflow engine for Drupal.

Orchestra runs business processes modelled as a graph of nodes connected by flows. A running process is advanced by tokens: a token sits on a node, the engine executes that node, and the token is then either consumed (producing new tokens on the outgoing flows) or parked to wait for an external signal. Parallel work is simply several tokens advancing at once.

Why Orchestra

  • Lightweight kernel. The orchestra module is the engine and nothing else: no UI, no editor, no dependencies beyond Drupal core. It runs tokens inline by default and can run headless, advancing tokens through a queue on cron.
  • Everything is a plugin. Node behavior (TaskType), routing (FlowCondition, Split, Join) and task assignment (Assignment) are all attribute-based plugins. You extend Orchestra by adding plugins, never by patching it.
  • Optional weight in submodules. Dashboards, a BPMN editor, timers, human-task management and ECA integration are each a submodule you enable only when you need it.
  • Multi-tenant from the start. Every install has one default tenant and behaves like a single-tenant site; isolation into several realms is opt-in.

Requirements

  • Drupal 11.3 or newer
  • PHP 8.3 or newer

Where to go next

  • Concepts: the token model, the process lifecycle, routing and task assignment.
  • Architecture: the kernel, its entities and plugins, and the submodules around it.
  • Human tasks: the task lifecycle, the inbox, and external task handoff.
  • Distributed execution: the client contract, the HTTP API, and running a workflow on another site.
  • Integrations: ECA, visual authoring, and the shipped examples.
  • Multi-tenancy: running isolated realms on one site.
  • Roadmap: what is built and what is planned.