hardSystem Design

How do you handle graceful shutdown in a Node.js application?

868 views
01

Understand the problem

This question assesses knowledge of how to properly terminate a Node.js application without data loss or service disruption.

deploymentreliabilityerror handlingbest practices
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Graceful shutdown with timeout
function shutdown(signal) {
  console.log(signal, '→ shutting down');
  server.close(async () => {        // stop new, drain in-flight
    await pool.end();               // close DB pool
    process.exit(0);
  });
  setTimeout(() => process.exit(1), 10_000).unref();  // hard cap
}
process.on('SIGTERM', () => shutdown('SIGTERM'));
process.on('SIGINT', () => shutdown('SIGINT'));
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.