Engine

Where the rules run

At the core of Ordo is a rule engine written in Rust. Give it JSON and it walks through your rules step by step, then returns the result and why each step went the way it did.

Customer wrote

“The blender arrived yesterday but it is much louder than the video showed. Not sure it is for me. What are my options?”

jev.intent
refund (0.97)
jev.chargeback
0.04
order.amount
129.00
order.days_since_delivery
1
customer.refunds_90d
0
Path
  1. escalationChargeback or legal threat
  2. intentIs it a refund request
  3. priorityPriority$priority = "normal"
  4. routeRoute by confidence and order$decision = "AUTO_REFUND"
  5. dispatchDispatch
  6. auto_refundAuto refund
Result
AUTO_REFUND
Refund issued without review
{"amount":129,"jev_confidence":0.97,"priority":"normal"}

The refund routing rules on four real messages. Jev answers from typesafe/jev-1.13; results match ordo trace.

01

Fast

A rule with four branches runs in about 573 ns. One server handles about 60,000 HTTP requests a second.

Benchmarks →
02

Exact

Money is computed as exact decimals, so 0.1 + 0.2 is 0.3. A missing field or a wrong type is an error, not a quiet trip down the wrong branch.

Rule structure →
03

Runs anywhere

Write and test rules with the CLI, serve them over HTTP or gRPC, or embed the engine in a Rust program or a browser. Same rule files.

Running the server →

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.