Orrery
Open Source ยท Apache 2.0

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.

Cockpit โ€” Dashboard

How It Works

01

Deploy

Run the orrery server with Docker or as a binary. Connect to your PostgreSQL database.

02

Define BPMN

Upload your BPMN 2.0 process definition. Model workflows visually with any BPMN editor.

03

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.

worker.ts
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.