Liveness - процесс жив (простой endpoint или отсутствие дедлока). Readiness - готов принимать трафик (БД доступна, зависимости отвечают). В Go: /health возвращает 200 или 503; проверки - пинг БД, вызов зависимостей с таймаутом. В K8s liveness/readiness probes указывают на эти endpoint. Отдельный endpoint для зависимостей (dependency health) для отладки.
func (h *Health) Readiness(w http.ResponseWriter, r *http.Request) {
if err := h.db.PingContext(r.Context()); err != nil {
w.WriteHeader(503)
return
}
w.WriteHeader(200)
}