Jev vs traditional routing
Traditional routing is deterministic: keyword lists, ticket forms, round-robin queues, Drools-style rules. Jev routing is a typed Choice (and optional Score) on messy text, then the same queues and rules fire on structured answers.
Unofficial comparison. Official pattern: intent routing. Live how-to: /usecases/intent-routing. Not affiliated; no keys.
Criteria
| Criterion | Rules / queues | Jev + code |
|---|---|---|
| Unstructured email | Brittle keywords | Choice over intents you listed |
| Known order-id regex | Wins — keep in code | Do not ask Jev to parse ids |
| Confidence / abstain | Implicit (no match) | Explicit confidence / Noul band |
| Changing taxonomy | Ticket-form release | Edit criteria (pin model if floors exist) |
| Cost | Your CPU | Vendor input-token price |
TypeSafe “how to build”: keep control flow and deterministic work in code. Jev appears where you need common sense over language.
When traditional routing still wins
- The user already picked a queue in a form
- Routing is a pure SKU or HTTP path
- You cannot send ticket text off-box
When to put Jev in front
- Free-text that should skip the expensive LLM (order status → SQL)
- Complaints that need a complexity Score before a human
- Model routing (cheap vs careful LLM) — model routing
Do not replace the queue manager. Replace the guess that used to live in a 400-line if "refund" in text.
When not to use Jev
Do not ask Jev to parse order ids, IBANs, or SKUs. Jaggedness: identifiers are exact tokens. Regex first; Jev on the remainder. Same split as keyword triage.
Do not put the queue SLA, assignment round-robin, or business-hours calendar inside instructions. Those are rules. A Choice that “picks the team” without an other / review band will force a wrong queue.
Do not use Jev as the message bus. It does not enqueue, retry, or page. Your worker does.
Skip Jev when the ticket form already captured the intent, or when policy forbids sending ticket bodies to a model.
Pairing-specific failure modes
- Literal reading. Users say “I was charged twice” instead of “refund.” Criteria must name the paraphrase, not only the queue noun.
- Taxonomy edit without pin. Floors fitted on
jev-1.13.0drift if you shipjev-latestor rewrite criteria without replay. - Math in the ticket. “This is the third outage this week” — count in code; do not ask Jev how many.
- Schema-safe ≠ correct queue. A well-typed
billinglabel can still be a legal complaint. Keep a review band on lowconfidence.
Pin jev-1.13.0 after you fit floors. TypeSafe’s published list price for jev-1.13 is $0.042 per million input tokens (vendor claim — confirm on the models page); output tokens are free.
Production sketch
- Normalize the inbound email. Regex extract ids, order numbers, CVE-like tokens.
- If a form field or exact SKU already names the queue, skip Jev.
- Otherwise POST a Choice over your closed intent list plus
other. Optional complexity Score. Pinjev-1.13.0. - Code maps
{intent, score, confidence}onto the existing queue and SLA rules.otheror low confidence → human triage, not a guessed queue. - Log
response.model, criteria SHA, and the queue that actually received the ticket. Replay when the taxonomy changes.
Hub: Comparisons. Siblings: intent routing, keyword triage.
FAQ
Is this a message bus? No. Jev does not enqueue. Your worker does.
Can I keep regex and Jev? Yes — regex first, Jev on the remainder.
Does Jev replace Drools? No. Rules still own exact predicates. See rules engines.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.