BPMN workflow orchestration built in Rust
Self-hosted, open source alternative to Camunda. Full BPMN 2.0 support, PostgreSQL persistence, and multi-language SDKs.
Why Orrery?
Self-Hosted
Run on your own infrastructure. No vendor lock-in, no licensing fees, full control over your data.
Full BPMN 2.0
Complete support for service tasks, gateways, timers, message correlation, subprocesses, and boundary events.
Multi-Language SDKs
Official SDKs for Rust, TypeScript, and Clojure. Build workers in your language of choice.
REST API + Web UI
OpenAPI-documented REST API and a built-in web dashboard for monitoring and managing workflows.
Built-in Cockpit
Monitor processes, inspect running instances, and visualize BPMN flows โ all from a built-in web UI. No extra tooling required.

How It Works
Deploy
Run the orrery server with Docker or as a binary. Connect to your PostgreSQL database.
Define BPMN
Upload your BPMN 2.0 process definition. Model workflows visually with any BPMN editor.
Write Workers
Implement service task workers in Rust, TypeScript, or Clojure. Workers poll for tasks and complete them.
Write a worker in minutes
Workers subscribe to BPMN service tasks by topic and process them asynchronously.
import { OrreryWorker } from "@orrery/sdk";
const worker = new OrreryWorker({
baseUrl: "http://localhost:8080",
topic: "validatePayment",
handler: async (task) => {
const { orderId, amount } = task.variables;
const valid = await validatePayment(orderId, amount);
await task.complete({ valid });
},
});
worker.start();Open Source Forever
Orrery is Apache 2.0 licensed. Use it, fork it, contribute to it. No commercial license required, ever.