jev-resilience
Spring WebFlux starter: a semantic circuit breaker where Jev flags HTTP 200 responses whose bodies actually encode failures.
Overview
jev-resilience is an unofficial Spring Boot starter that adds semantic failure detection to Spring WebFlux services. Standard circuit breakers only see transport-level failures such as 5xx, timeouts and connection errors, and miss silent failures: HTTP 200 responses whose body contains an error, a stack trace or a maintenance notice. This starter evaluates response payloads with Jev and converts suspected silent failures into a SemanticFailureException.
You annotate a method returning Mono or Flux with @SemanticCircuitBreaker and a confidence threshold; an AspectJ aspect composes the Jev call into the reactive pipeline without blocking threads, with a configurable timeout (750 ms default). It is fail-open: any TypeSafe error, timeout or malformed response is treated as not a failure, so a Jev outage cannot trip your breaker. The exception works with onErrorResume, @ExceptionHandler or Resilience4j's recordExceptions. It is published via JitPack.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this HTTP 200 response actually a disguised failure? | yes · no |
How it works
- Annotate a WebFlux method with @SemanticCircuitBreaker
- The response payload is sent to Jev non-blockingly
- Above the confidence threshold, emit SemanticFailureException
- Handle it with existing error handling or Resilience4j
Strengths
- Catches failures that transport-level breakers miss
- Non-blocking and fail-open
- Integrates with standard Spring error handling
Caveats
- Adds latency to each guarded call
- Response payloads are sent to TypeSafe
- Unofficial early release (0.1.1)
Getting started
Add the JitPack repository and com.github.vicente-md:jev-resilience:0.1.1, set typesafe.jev.api-key, then annotate methods with @SemanticCircuitBreaker.At a glance
- Type
- Project
- Status
- beta
- Language
- Java
- Runtime
- Spring Boot starter (WebFlux)
- Has code
- yes
Use cases and integrations
How curated lists describe it
Unofficial Spring WebFlux starter: a semantic circuit breaker that uses Jev to catch silent HTTP 200 failures
AnotiaWang/awesome-decision-modelsA Spring WebFlux integration that detects error messages hidden in HTTP 200 response bodies.
logicrw/awesome-jev-projects
Frequently asked questions
What does Jev decide?
Whether a successful-looking response actually encodes an error or maintenance notice.
What if Jev is down?
The starter fails open and treats the response as not a failure.
Does it block threads?
No. The call is composed into the reactive pipeline.
Related projects
Apache NiFi processor that routes FlowFiles yes, no, review or failure based on a Jev yes/no question and a confidence band.
ProjectbetaJavaAx, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.
PluginproductionTypeScriptCline's official curated plugin collection, which includes jev-browser, jev-guard and jev-playground plugins.
PluginproductionTypeScriptComposio agent SDK with an optional TypeSafe provider that uses Jev to shortlist and pick tools and closed-set arguments.
ProjectproductionTypeScriptEffect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.
ProjectproductionTypeScriptelizaOS autonomous agent framework, listed for an optional TypeSafe System One HTTP adapter in its source.
ServiceproductionTypeScript