Readiness Checks
A started process is not a healthy service. fuku polls until your service actually accepts requests.
How it works
Poll until healthy
When a service has a readiness check configured, fuku waits for it to pass before marking the service as ready. The next tier only begins after all services in the current tier are ready.
fuku · readiness checks
│ tier foundation │ ○ auth checking http localhost:8081/health... │ ○ gateway checking http localhost:8082/health... │ ✓ gateway ready 1.8s │ ✓ auth ready 2.1s │ │ tier platform │ ○ api checking http localhost:8080/health... │ ✓ api ready 4.5s
Three check types
Pick the one that matches your service
HTTP
Wait for an HTTP endpoint to respond with a 2xx status code:
services:
api:
dir: ./api
readiness:
type: http
url: http://localhost:8080/health
timeout: 30s
interval: 1sTCP
Wait for a TCP port to accept connections:
services:
gateway:
dir: ./gateway
readiness:
type: tcp
address: localhost:9000
timeout: 10s
interval: 1sLog
Wait for a specific pattern to appear in the service's output:
services:
grpc-server:
dir: ./grpc
readiness:
type: log
pattern: "gRPC server started"
timeout: 30sConfiguration
Per-service, in fuku.yaml
| Field | Description |
|---|---|
type | http, tcp, or log |
url | HTTP endpoint to check (http type only) |
address | Host:port to connect to (tcp type only) |
pattern | String to match in log output (log type only) |
timeout | Maximum time to wait before marking as failed |
interval | Time between check attempts (http/tcp only) |
Retries
Automatic retry on failure
If a readiness check times out, fuku can retry the service start based on your retry configuration:
retry:
attempts: 3 # Max retry attempts (default: 3)
backoff: 500ms # Initial backoff duration (default: 500ms)Ready to try it out?
Get Started