Nestjs caching
Skills for my agentic development workflow.
npx -y skills add FilippoDeSilva/skills --skill nestjs-cachingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Implement multi-level caching, invalidation patterns, and stampede protection in NestJS. Use when adding Redis caching layers, configuring cache-manager interceptors, implementing stale-while-revalidate, or preventing cache stampedes in NestJS services.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.5 KB, as published. Nobody here has run it
Caching & Redis Standards
Priority: P1 (OPERATIONAL)
Caching Strategy
- Layering: Use Multi-Level Caching for high-traffic read endpoints.
- L1 (Local): In-Memory (Node.js heap). Ultra-fast, no network. Use
lru-cachefor config/static data. - L2 (Distributed): Redis. Shared across pods.
- Pattern: Implement Stale-While-Revalidate to avoid latency spikes during cache misses.
NestJS Implementation
- Library: Use
cache-managerwithcache-manager-redis-yet(recommended overcache-manager-redis-storefor V4 stability). - Interceptors: Use
@UseInterceptors(CacheInterceptor)for simple GET responses. - Warning: Default key URL. Ensure consistent query param ordering or use custom key generators.
Stampede Protection
- Jitter: Add random variance to TTLs to prevent simultaneous expiry across keys.
- Locking: One process recomputes while others wait or return stale data.
Redis Data Structures
- Hash (
HSET): Store objects (user profiles) with partial update support. - Set (
SADD): Unique collections with O(1) membership checks. - Sorted Set (
ZADD): Priority queues, leaderboards, rate-limiting windows.
Invalidation Patterns
- Tagging: Use Sets to group cache keys (avoid
KEYSwhich O(N) in production). - Create:
SADD post:1:tags cache:post:1 - Invalidate: Fetch tags from Set, then
DELgrouped keys. - Event-Driven: Listen to domain events (
UserUpdated) to trigger invalidation asynchronously.
Anti-Patterns
- No KEYS in production: Use SET-based tag grouping for cache invalidation; KEYS O(N).
- No fixed TTLs on grouped caches: Add jitter (±10s) to prevent simultaneous stampede.
- No MemoryStorage for multi-pod: Use Redis store; in-memory cache not shared across pods.