Health

Use liveness to decide whether the Manager process should be restarted. Use readiness to decide whether it can receive traffic that depends on PostgreSQL and NATS.

Liveness check

Confirms that the Manager process is running and can serve HTTP.

GET
/api/health/live200
This probe does not test PostgreSQL or NATS.
Request
curl http://localhost:4400/api/health/live
Response
{
  "status": "ok",
  "info": {},
  "error": {},
  "details": {}
}

Readiness check

Checks whether PostgreSQL and NATS are available to the Manager.

GET
/api/health/ready200
Request
curl http://localhost:4400/api/health/ready
Response
{
  "status": "ok",
  "info": {
    "database": { "status": "up" },
    "nats": { "status": "up" }
  },
  "error": {},
  "details": {
    "database": { "status": "up" },
    "nats": { "status": "up" }
  }
}

Possible errors

503PostgreSQL or NATS is unavailable.

Probe policy

In Kubernetes, configure liveness against /api/health/live and readiness against /api/health/ready. A temporary dependency outage should remove a pod from service without restarting an otherwise healthy process.

Keep the readiness timeout below the orchestrator’s probe timeout. PostgreSQL is currently checked with a three-second ping timeout.