package main import ( "log" "os" "os/signal" "syscall" "orderservice/internal/config" "orderservice/internal/server" ) func main() { cfg, err := config.Load() if err != nil { log.Fatalf("Failed to load config: %v", err) } srv := server.New(cfg) srv.RegisterServices() go func() { if err := srv.Start(); err != nil { log.Fatalf("Failed to start server: %v", err) } }() quit := make(chan os.Signal, 1) signal.Notify(quit, os.Interrupt, syscall.SIGTERM) <-quit log.Println("Shutting down server...") srv.Stop() log.Println("Server stopped") }