package health import ( "context" "fmt" ) // Checker allows plugging external dependency checks into readiness. type Checker interface { Name() string Check(ctx context.Context) error } // ReadinessUsecase executes dependency checks used by /readyz. type ReadinessUsecase struct { checkers []Checker } func NewReadinessUsecase(checkers []Checker) *ReadinessUsecase { return &ReadinessUsecase{checkers: checkers} } func (u *ReadinessUsecase) Check(ctx context.Context) error { // TODO: add concrete dependency checkers (DB, cache, third-party APIs) as needed. for _, checker := range u.checkers { if err := checker.Check(ctx); err != nil { return fmt.Errorf("%s check failed: %w", checker.Name(), err) } } return nil }