agentsclimarketplace

Nestjs caching

Skill FilippoDeSilva/skills/skills/nestjs/nestjs-caching

Skills for my agentic development workflow.

Install
npx -y skills add FilippoDeSilva/skills --skill nestjs-caching

Assembled 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-cache for 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-manager with cache-manager-redis-yet (recommended over cache-manager-redis-store for V4 stability).
  • Interceptors: Use @UseInterceptors(CacheInterceptor) for simple GET responses.
  • Warning: Default key URL. Ensure consistent query param ordering or use custom key generators.

See implementation examples

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.

See implementation examples

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 KEYS which O(N) in production).
  • Create: SADD post:1:tags cache:post:1
  • Invalidate: Fetch tags from Set, then DEL grouped 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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.