Files
core/launcher/doc.go
T

28 lines
858 B
Go
Raw Normal View History

// Package launcher orchestrates the application lifecycle.
//
// A Launcher manages infrastructure components through three ordered phases:
//
// 1. OnInit — all components initialize in registration order
// 2. BeforeStart hooks — dependency injection wiring runs
// 3. OnStart — all components start in registration order
//
// On shutdown (OS signal or programmatic Shutdown call), OnStop is called for
// every component in reverse registration order, ensuring dependents stop
// before their dependencies.
//
// Usage:
//
// logger := logz.New(logz.Config{JSON: true})
// lc := launcher.New(logger)
//
// lc.Append(db, cache, server)
// lc.BeforeStart(func() error {
// return server.RegisterRoutes(db, cache)
// })
//
// if err := lc.Run(); err != nil {
// logger.Error("launcher failed", err)
// os.Exit(1)
// }
package launcher