Skip to content

Jevbus

Rust event bus where routing is a judgment call: one event plus one typed question per subscription goes to a Jev judge, and the calibrated probabilities decide drop, review or deliver.

Stars
3
Language
Rust
License
APACHE-2.0
Published by
Community
Author
zkjoie
Last verified
Oct 2026

zkjoie/jevbus

User repository on GitHub

View on GitHub

A streaming event bus whose routing, subscription and consumption are decided by a probabilistic judge. The reference judge is TypeSafe AI's Jev (System One) model: send it a payload and a set of typed questions, get back calibrated probabilities instead of prose.

Forks
1
Last pushed
Updated Sep 2026

Repo stats from the GitHub API, cached Oct 2026.

About this project

A streaming event bus whose routing, subscription and consumption are decided by a probabilistic judge. The reference judge is TypeSafe AI's Jev (System One) model: send it a payload and a set of typed questions, get back calibrated probabilities instead of prose. decide(subs, answers) -> Vec . No IO. Replayable from a recorded answer set.

Quoted from the project's README. Read the full README.

Highlights

  • Pure core routing: plan(subs) -> QuestionSet and decide(subs, answers) -> Vec<Verdict> with no IO, replayable from a recorded answer set.
  • One judge request per event regardless of subscription count; consecutive events pipeline through BusConfig::concurrency and output keeps input order.
  • Lifecycle phases are types, so settling a retrying event does not compile; 408, 429 and 5xx count as transient, other 4xx dead-letter at once.
  • Thresholds are policy rather than model, with review <= deliver enforced at construction, so retuning never needs a new judgment.

Watch out

Judge and Ledger are traits and consumers are plain futures streams over bounded channels, so a slow subscriber applies backpressure to the input. There is no broker: the crate ships traits and an in-process channel, and crossing processes means serialising Delivery over your own transport. A judge failure is recorded for that event and the run continues, but a ledger failure stops the run, since an unaudited delivery is worse than none. Acknowledgement happens after the event's final ledger row in input order, so delivery is at least once and a crash mid-flight redelivers rather than loses. Budget for one judge request per event: the cache wrapper keys on a SHA-256 digest of payload and question set with a 24 h default TTL, and only successful answer sets are cached. Copy reviewed against the repository README on 2026-10-04, not from running it.

Questions about this entry

Short answers drawn from the linked project or page.

More Jev resources like this

7GitHub stars
Four read-only MCP tools that rank files, cut a file down to the relevant part and pick from long lists, measured on a frozen SWE-bench Lite split.
Jev Practices & Patterns#community#awesomejev#catalog-import
2GitHub stars
A TypeScript starter for the layer around the model: decision contracts, confidence thresholds that route to auto, fallback or human review, deterministic mock providers, and an offline evaluation harness.
Jev Practices & Patterns#community#awesomejev#catalog-import
3GitHub stars
Single-tool MCP server for Jev: send state plus a map of noul, choice or score questions to evaluate and get typed answers with probabilities and confidence back.
Jev Practices & Patterns#community#awesomejev#catalog-import
Runs Jev as an LLM router over two public benchmarks, with a no-Jev ablation and RouterArena's own scorer so the numbers sit next to the public leaderboard.
Jev Practices & Patterns#community#jevbest#catalog-import
1GitHub stars
Runnable benchmark putting Jev, jev-preview and Claude Sonnet 5 through one real agent task — classifying a tool call as readonly, destructive, privileged or exfiltration — on the same 60 labelled cases, with raw per-call results committed.
Jev Practices & Patterns#community#awesomejev#catalog-import
3GitHub stars
A Go gateway that speaks the OpenAI and Anthropic APIs and handles model: "auto" by asking a decision model four typed questions about the prompt — topic, complexity, risk and private data — then scoring models in config.yaml and calling the cheapest one above the quality floor.
Jev Practices & Patterns#community#awesomejev#catalog-import

From the Jev guides

Original write-ups on what this entry is for.

Most Jev accuracy problems are state problems. What belongs in a state, what is a pre-made judgment to leave out, and why naming the slice you ask about matters more than the wording.
Jev Practices & Patterns#state#design#primitives
Read article
A Noul returns one number and no separate confidence. How to read the value, pin its boundary with criteria, split compound questions, and set a per-action threshold that matches the cost of being wrong.
Jev Practices & Patterns#noul#primitives#confidence
Read article
A Score is a weighted position, not a ruler. Why the number can land between levels, why levels are judged separately, and how to combine several atomic scores in code instead of one crowded rubric.
Jev Practices & Patterns#score#primitives#scoring
Read article
Back to all resources

From the Jev community

Posts from builders shipping with Jev right now.

Follow @typesafeai