Health checks are only available for servers.
Overview
Every time an installation is redeployed (through a Git push, configuration change, etc.), a new set of replicas will replace the old ones. To ensure zero-downtime deployments, Ryvn follows this process:Health Checks
Ryvn sends requests to your health check endpoint to verify the new replicas are ready.
Configuring Health Checks
To configure health checks for your installation:The actions your endpoint should take to verify health depend on your installation’s details. We recommend performing
operation-critical checks, such as executing a simple database query to confirm connectivity.
Health Check Protocol
With every health check, Ryvn sends anHTTP GET request to each replica’s health check endpoint. The response
determines the replica’s health status:
| Check | Response | Status |
|---|---|---|
| ✅ Success | 2xx or 3xx status code within 5 seconds | Healthy |
| ❌ Failure | Any other status code or no response within 5 seconds | Potentially Unhealthy |
| Context | Time Period | Actions |
|---|---|---|
| Zero-Downtime Deployment | 15 consecutive minutes | • Deployment is canceled • Traffic continues flowing to existing replicas • You are notified of the cancellation |
| Running Installation | 15 consecutive seconds | • Traffic stops routing to the unhealthy replica • Replica gets an opportunity to recover |
| Running Installation | 60 consecutive seconds | • Replica is automatically restarted • You are notified of the restart |
IaC Configuration
When using Infrastructure as Code, health checks are configured via theconfig block in your ServiceInstallation YAML. The following fields control health check behavior:
| YAML Field | Type | Description |
|---|---|---|
config.livenessEnabled | boolean | Enable liveness probe (default: false) |
config.livenessProbe | object | Liveness probe configuration (httpGet.path, httpGet.port, initialDelaySeconds, periodSeconds, etc.) |
config.readinessEnabled | boolean | Enable readiness probe (default: false) |
config.readinessProbe | object | Readiness probe configuration (httpGet.path, httpGet.port, initialDelaySeconds, periodSeconds, etc.) |