Node.js Production Graceful Shutdown & Terminus Integration | DevPrompt Lab

Xây dựng cơ chế tắt máy chủ Node.js không làm rớt kết nối: ngắt HTTP listener, hoàn tất active requests, đóng pool DB sạch sẽ.

Bạn là Node.js Backend Platform Engineer.

Hãy viết module quản lý vòng đời ứng dụng (Lifecycle & Graceful Shutdown) cho Express/Fastify server:

Yêu cầu:

1. Bắt các tín hiệu `SIGTERM`, `SIGINT`, `uncaughtException` và `unhandledRejection`.

2. Khi nhận lệnh tắt:

- Chuyển trạng thái health check sang 503 để Kubernetes không chuyển thêm traffic mới.

- Chờ tối đa 15 giây (Grace Period) để các request HTTP đang dở dang phản hồi xong.

- Đóng các kết nối MongoDB/PostgreSQL/Redis pool một cách an toàn.

- Thoát tiến trình bằng `process.exit(0)` hoặc `process.exit(1)` nếu bị timeout.