// Package health provides a concurrent health check HTTP handler. // // The handler runs all registered checks in parallel, collects results within // a configurable timeout, and returns a structured JSON response. It maps // directly onto Kubernetes liveness and readiness probes. // // Components register themselves by implementing // [observability.Checkable] from einherjar/contracts — no adapter needed. // // - [observability.LevelCritical]: if DOWN, overall status is DOWN (503) // - [observability.LevelDegraded]: if DOWN, overall status is DEGRADED (200) // // # Example // // srv.Get("/health", health.NewHandler(logger, db, cache, storage)) // // Or with custom timeout: // // srv.Get("/health", health.NewHandlerWithConfig(logger, // health.Config{CheckTimeout: 3 * time.Second}, // db, cache, // )) package health