Knock is the health subsystem of the Vidocq runtime. It implements MicroProfile Health 4.0 with zero third-party libraries — only Jakarta EE and MicroProfile specifications. Health checks are discovered through CDI, exposed over Jakarta REST, serialised with Jakarta JSON-P, and executed on virtual threads.

Origin of the name

Knock, or the Triumph of Medicine (« Knock, ou le Triomphe de la médecine ») is a 1923 comedy by Jules Romains. Doctor Knock turns a whole village into patients under permanent observation — "every healthy person is a sick person who doesn’t know it yet". The Knock module applies the same relentless auscultation to a running application: liveness, readiness and startup probes keep every component under continuous diagnosis.

At a glance

Implemented spec

MicroProfile Health 4.0

Repo

https://codeberg.org/Vidocq/knock

Java

25

JPMS modules

knock-api, knock-core, knock-cdi-vauban, knock-jaxrs, knock-tck

Runtime dependencies

None beyond org.eclipse.microprofile.health and jakarta.json

MicroProfile Health 4.0 TCK

28 / 28 PASS — see detailed status

Three identifying traits

  1. Zero third-party libraries — MicroProfile Health and Jakarta specs only. No SmallRye Health, no Vert.x, no Jackson. JSON is produced through Jakarta JSON-P.

  2. CDI-native discovery@Liveness, @Readiness, @Startup beans are discovered by a Vauban Build Compatible Extension and registered automatically, while knock-core stays usable in plain Java SE.

  3. Strict JPMS + virtual threads — every module ships a module-info.java; checks run on a VirtualThreadPerTaskExecutor. No synchronized, no ThreadLocal, no setAccessible(true).

Endpoints

Endpoint Probe HTTP status

GET /health

All registered checks

200 UP / 503 DOWN

GET /health/live

@Liveness checks

200 UP / 503 DOWN

GET /health/ready

@Readiness checks

200 UP / 503 DOWN

GET /health/started

@Startup checks

200 UP / 503 DOWN

Position in the ecosystem

Diagram