Readiness — are dependencies reachable?
Checks Postgres. Answers 503 when a dependency is down, which is the signal to stop sending this instance traffic without restarting it. Cache status rides along in the payload but never fails the probe — it is an optimisation, not a dependency. Queue depths ride along the same way: the API only ever produces, so a broker outage defers work rather than breaking a request. The process that cannot run without a broker is tone-worker, which refuses to boot instead of reporting here.
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/health/ready"{ "details": { "database": { "status": "up" } }, "error": {}, "info": { "database": { "status": "up" } }, "status": "ok"}Liveness — is the process up?
Touches no dependencies and never fails while the process can answer. Unversioned and un-enveloped on purpose, so a load balancer gets a stable, standard contract. Use it for restart decisions, not for traffic decisions.
This organization's rate limits and concurrent-call quotas
Two budgets that fail in different ways for different reasons. Exceeding the request budget is a 429 rate_limited with a Retry-After — slow down. Exceeding a concurrency pool is a 429 concurrent_call_limit_reached, which slowing down does not fix: you have to wait for calls to end. Live and test have separate budgets, and this answers for whichever key you asked with.