Go HTTP Server with Graceful Shutdown
backend
Go
architecture
strict_senior
Production-ready Go HTTP server with proper lifecycle management and graceful shutdown.
By olivia_c
12/8/2025
Prompt
Go HTTP Server with Graceful Shutdown
Build a production-ready Go HTTP server with proper lifecycle management.
Components
1. HTTP Server Setup
- Use gorilla/mux or chi router
- Configure host, port, timeouts
2. Middleware
- Logging middleware
- Recovery middleware (panic handling)
- CORS middleware
3. Health Check
/healthendpoint- Return server status
4. Signal Handling
- Listen for SIGTERM and SIGINT
- Trigger graceful shutdown
5. Graceful Shutdown
- Context with timeout (30 seconds)
- Complete in-flight requests
- Close database connections
- Clean resource cleanup
6. Error Logging
- Comprehensive error logging throughout
- Structured logging (JSON format)
7. Configuration
- Load from environment variables
- Use
.envfile for local development - Validate required configuration
Structure
Show the complete main.go file structure with:
- All necessary imports
- Best practices for production deployments
- Proper error handling
- Clean code organization
Tags
golang
http
graceful-shutdown
production
Tested Models
gpt-4
claude-3-opus