Visual rule workspace. Drag-and-drop flow editor, decision table editor, template instantiation, execution trace, and testing. All API requests are proxied through Vite to ordo-platform.
How Ordo is built
Studio is the visual workspace, Platform is the control plane, and ordo-server executes rules. Rules sync between them over NATS JetStream, and PostgreSQL stores all control-plane state.
System layer overview
Actual deployment topology from compose.yml
Component breakdown
The control plane. Manages organizations, projects, members, RBAC, templates, Fact Catalog, contracts, release requests, and the server registry. Subscribes to NATS to track server heartbeats in real time.
Background async worker. Handles release execution tasks, rule sync scheduling, and notification dispatch. Shares the database with the main process but runs independently.
The rule execution engine. Supports HTTP / gRPC / WASM / CLI. JIT compilation via Cranelift: 50–80 ns latency; interpreter: 1.63 µs; 54k QPS single-thread HTTP. Auto-registers with Platform on startup and sends continuous heartbeats over NATS.
Control-plane message bus. Carries server registration (ordo.rules.*), heartbeats, and rule sync events. Platform and ordo-server both subscribe to it, and node discovery and rule pushes go through it.
The sole persistent store for the control plane (ordo_platform database). Stores organizations, projects, roles, Facts, contracts, release requests, approvals, server metadata, and rule snapshots.
Request execution path
The full request chain from Studio through Platform to ordo-server
Release & approval path
A release goes through a release request and an approval before the worker pushes it to each engine
Start from a ready-made example
Jev refund routing, credit approval, promo stacking and fraud scoring, already written. Copy one and change it to your own policy.