QA
Senior LevelExpress JS

How do you implement Load Shedding middleware in Express to drop low-priority traffic under CPU lag?

❓ Interview Prompt: Explain Load Shedding middleware, monitoring event loop lag with node:perf_hooks, and shedding low-priority requests under CPU overload.

When an Express server experiences extreme CPU load spikes, accepting all incoming requests causes system-wide cascading failure. Load Shedding drops low-priority requests immediately to preserve capacity for critical endpoints.

Load Shedding Middleware:

Monitor event loop lag using 'node:perf_hooks'. If event loop lag exceeds safety limits (e.g. >100ms), shed incoming low-priority requests immediately with HTTP 503 Service Unavailable, preserving capacity for checkout/login routes!

Code Implementation Example

javascript
import express from 'express';
import { monitorEventLoopDelay } from 'node:perf_hooks';

const histogram = monitorEventLoopDelay({ resolution: 20 });
histogram.enable();

const app = express();

// Load Shedding Middleware
app.use((req, res, next) => {
  const eventLoopLagMs = histogram.mean / 1e6;

  // If event loop lag exceeds 100ms and request is low-priority analytics, shed load!
  if (eventLoopLagMs > 100 && req.path.startsWith('/api/analytics')) {
    return res.status(503).json({ error: 'Server busy. Load shed.' });
  }
  next();
});
💡Shedding low-priority API load under heavy event loop lag.
🎯 Interview Key Takeaway

Use Load Shedding middleware monitoring event loop lag to reject low-priority traffic and preserve server stability.

#Load Shedding#Event Loop#Resilience#Senior
Back to all Express JS Questions→

More Express JS Interview Questions

Beginner LevelExpress JS

What is Express.js and how does the middleware pipeline work?

Beginner LevelExpress JS

What is the difference between req.params, req.query, and req.body?

Beginner LevelExpress JS

How does express.Router() work for building modular route controllers?