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.
“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
- escalationChargeback or legal threat
- intentIs it a refund request
- priorityPriority$priority = "normal"
- routeRoute by confidence and order$decision = "AUTO_REFUND"
- dispatchDispatch
- auto_refundAuto refund
{"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.
Fast
A rule with four branches runs in about 573 ns. One server handles about 60,000 HTTP requests a second.
Benchmarks →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 →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.