Documentation
Orch8 is a self-hosted workflow engine that runs durable multi-step sequences on servers and mobile devices. Define workflows as JSON, schedule them via REST API, and the engine handles execution, retries, rate limits, and crash recovery — even offline on iOS and Android.
Orch8 0.7.0 is available
Read the release guide for continuity, effect safety, resumable workers, typed dataflow, guarded releases, and the required migration changes.
Read the 0.7.0 release guide →What makes Orch8 different?
- ✓State snapshots — resumes from persisted state without replaying the full sequence history
- ✓Built-in scheduling — business days, timezones, rate limits, and send windows without extra code
- ✓Native composite blocks — parallel, race, loop, router, try-catch, A/B split, and child workflows out of the box
- ✓Runs on mobile — native iOS and Android SDK via Rust + UniFFI. Offline-first with server-side visibility
- ✓Single binary — one executable, one database. Deploy in 30 seconds
Official SDKs for TypeScript/Node.js, Python, and Go. Single binary or Docker image. Just Postgres (or SQLite for local dev) and the engine.
How it works
When the engine runs a step, it saves the current state to PostgreSQL as a snapshot. If the server crashes and restarts, it reads the latest snapshot and continues from there — no need to re-run previous steps. Your handler code is just normal code with no special rules.
Getting Started
Reference
REST API
Curated REST guide plus links to the generated OpenAPI contract.
Defining Sequences
Block types, delays, rate limits, send windows, and context access.
Block Types
ForEach, SubSequence, Loop, Parallel, Race, Router, TryCatch, ABSplit.
Built-in Handlers
http_request, log, sleep, self_modify, llm_call, emit_event, and more.
Template Interpolation
{{context.data.email}}, fallback defaults, and expression support.
External Workers
Pull-based REST workers in any language with heartbeats and queue routing.
Concurrency & Rate Limits
Per-entity concurrency keys, idempotency, and sliding-window rate limits.
Versioning & Migration
Sequence versioning, hot migration, and dynamic step injection.
Advanced
Advanced Features
A/B splits, circuit breakers, SLA timers, interceptors, encryption.
Sessions
Group related instances under a named entity for lifecycle management.
AI Agents
llm_call, tool_call, human_review, ReAct loops, multi-agent delegation.
Mobile SDK
Run workflows on iOS and Android. Offline-first, push-driven sync, server-side approvals.
Plugins & WASM
gRPC sidecar plugins, WASM sandboxed handlers, plugin registry.
Triggers
HTTP webhooks, NATS subscriptions, file watch, in-process event bus.
Credentials & Keys
Encrypted credential vault with OAuth2 refresh and credentials:// URIs.
Signals & LLM Usage
Pause, resume, cancel, custom signals, and LLM token tracking.
Resource Pools
Multi-resource distribution with weighted rotation and warmup ramps.
Streaming & Approvals
SSE real-time events and human-in-the-loop approval workflows.
Activepieces (200+ Apps)
Pre-built integrations with Slack, Gmail, Notion, HubSpot, and more.
SQLite & Test Mode
Zero-dependency local dev and in-memory CI testing.
CLI
Instance management, sequence operations, cron, and health checks.
Concepts & Operations
Core Concepts
Sequences, instances, blocks, signals, context, rate limits, recovery.
Comparison
How Orch8 compares to Temporal, Inngest, and Trigger.dev.
Configuration & Deployment
TOML config, environment variables, Docker, Helm, observability.
Cluster & Multi-Node
Horizontal scaling with database-level work distribution.
Circuit Breakers & DLQ
Automatic circuit breaking and dead letter queue for failed instances.
Architecture
Crate structure, snapshot execution, two execution paths, tech stack.
Database Schema
Core tables, indexes, migrations, and the scheduling hot path.
Glossary
Key terms used throughout the documentation and API.
Ready to try Orch8?
One command to install. Then run your first local sequence.
curl -fsSL https://orch8.io/start.sh | sh