0
0
NestJSframework~8 mins

Cache interceptor in NestJS - Performance & Optimization

Choose your learning style9 modes available
Performance: Cache interceptor
MEDIUM IMPACT
This affects server response time and client perceived load speed by reducing repeated processing and data fetching.
Serving repeated API responses efficiently
NestJS
import { CacheInterceptor, ExecutionContext, Injectable } from '@nestjs/common';

@Injectable()
export class CustomCacheInterceptor extends CacheInterceptor {
  trackBy(context: ExecutionContext): string | undefined {
    const request = context.switchToHttp().getRequest();
    return request.url; // Cache key based on URL
  }
}
Caches responses for repeated requests, reducing server processing and speeding up response delivery.
📈 Performance GainSaves full processing on repeated requests, reducing LCP and server CPU load.
Serving repeated API responses efficiently
NestJS
import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
import { Observable } from 'rxjs';

@Injectable()
export class NoCacheInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
    // Always process request without caching
    return next.handle();
  }
}
Every request triggers full processing and database calls, increasing server load and response time.
📉 Performance CostBlocks response for full processing each time, increasing LCP and server CPU usage.
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
No cache interceptorN/A (server-side)N/AN/A[X] Bad
Cache interceptor with URL keyN/A (server-side)N/AN/A[OK] Good
Rendering Pipeline
The cache interceptor short-circuits server processing by returning cached data, reducing backend response time and improving client load speed.
Server Processing
Network Transfer
Client Rendering
⚠️ BottleneckServer Processing
Core Web Vital Affected
LCP
This affects server response time and client perceived load speed by reducing repeated processing and data fetching.
Optimization Tips
1Use cache interceptors to reduce repeated server processing for identical requests.
2Customize cache keys to maximize cache hit accuracy and efficiency.
3Monitor cache hit rates and response times to ensure caching improves performance.
Performance Quiz - 3 Questions
Test your performance knowledge
How does using a cache interceptor in NestJS affect server response time?
AIt has no effect on server response time.
BIt increases server processing by adding extra steps for caching.
CIt reduces server processing by returning cached responses for repeated requests.
DIt delays responses to ensure cache consistency.
DevTools: Network
How to check: Open DevTools, go to Network tab, observe repeated API calls and their response times with and without cache interceptor.
What to look for: Look for faster response times and fewer full data fetches indicating cache hits.