MA

managing-api-cache

Automates the setup of cache layers to optimize API response times.

Install

mkdir -p .claude/skills/managing-api-cache && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2027" && unzip -o skill.zip -d .claude/skills/managing-api-cache && rm skill.zip

Installs to .claude/skills/managing-api-cache

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Implement intelligent API response caching with Redis, Memcached, and
69 charsno explicit “when” trigger
Advanced

Key capabilities

  • Classify API endpoints by cacheability
  • Generate deterministic cache keys from request parameters
  • Implement cache-aside middleware for API responses
  • Configure Time-To-Live (TTL) for different endpoint categories
  • Invalidate cached responses on data mutations using tag-based invalidation
  • Add HTTP cache headers for CDN and browser caching

How it works

The skill implements API response caching by generating deterministic cache keys, checking the cache before executing handlers, and configuring TTLs and invalidation strategies. It supports cache-aside, read-through, and write-through patterns.

Inputs & outputs

You give it
API endpoint characteristics, request method, path, query parameters, and headers
You get back
Cached API response with `X-Cache: HIT` or fresh response with `X-Cache: MISS`

When to use managing-api-cache

  • Implement Redis cache layers
  • Define cache TTL and invalidation logic
  • Generate deterministic cache keys for endpoints
  • Configure stale-while-revalidate behavior

About this skill

Managing API Cache

Overview

Implement intelligent API response caching using Redis, Memcached, or in-memory stores with cache key generation, TTL management, cache invalidation strategies, and HTTP cache headers. Support read-through, write-through, and cache-aside patterns with tag-based invalidation for related resources and stale-while-revalidate behavior.

Prerequisites

  • Redis 6+ or Memcached for distributed caching (required for multi-instance deployments)
  • Cache client library: ioredis (Node.js), redis-py (Python), or Lettuce (Java)
  • CDN with cache control support for edge caching (CloudFront, Cloudflare, Fastly) -- optional
  • Monitoring for cache hit/miss ratios and eviction rates
  • Understanding of data freshness requirements per endpoint

Instructions

  1. Analyze endpoint characteristics using Read and Grep to classify endpoints by cacheability: fully cacheable (static data), conditionally cacheable (user-specific data), and never cacheable (mutations, real-time data).
  2. Implement cache key generation middleware that creates deterministic keys from method, path, query parameters (sorted), and relevant headers (Accept, Authorization hash for user-specific caches).
  3. Build a cache-aside middleware that checks the cache before executing the handler, returning cached responses with X-Cache: HIT header, or executing the handler, caching the result, and returning with X-Cache: MISS.
  4. Configure TTL per endpoint category: long TTL (1 hour) for reference data, medium TTL (5 minutes) for frequently changing lists, short TTL (30 seconds) for near-real-time data.
  5. Implement cache invalidation on mutations: when a POST/PUT/DELETE modifies a resource, invalidate all cached responses containing that resource using tag-based invalidation.
  6. Add Cache-Control, ETag, and Last-Modified response headers for HTTP-level caching, enabling CDN and browser cache participation.
  7. Implement stale-while-revalidate behavior: serve stale cached responses immediately while asynchronously refreshing the cache in the background, reducing perceived latency.
  8. Add cache warming for critical endpoints: pre-populate cache entries on application startup or schedule for frequently accessed resources.
  9. Write tests verifying cache hits, misses, invalidation correctness, TTL expiration, and stale-while-revalidate behavior.

See ${CLAUDE_SKILL_DIR}/references/implementation.md for the full implementation guide.

Output

  • ${CLAUDE_SKILL_DIR}/src/middleware/cache.js - Cache-aside middleware with hit/miss tracking
  • ${CLAUDE_SKILL_DIR}/src/cache/key-generator.js - Deterministic cache key generation
  • ${CLAUDE_SKILL_DIR}/src/cache/invalidator.js - Tag-based cache invalidation on mutations
  • ${CLAUDE_SKILL_DIR}/src/cache/store.js - Redis/Memcached cache store abstraction
  • ${CLAUDE_SKILL_DIR}/src/config/cache-policies.js - Per-endpoint TTL and caching policy configuration
  • ${CLAUDE_SKILL_DIR}/tests/cache/ - Cache behavior verification tests

Error Handling

ErrorCauseSolution
Cache stampedeTTL expires simultaneously for popular key; many requests hit databaseUse lock-based revalidation (only one request refreshes); apply jittered TTLs
Stale data servedCache invalidation missed a related resource after mutationImplement tag-based invalidation covering all affected cache keys; add invalidation audit logging
Redis connection failureCache store unavailable due to network or server issueFall through to database with degraded performance; log cache bypass; alert on sustained failures
Cache key collisionDifferent requests generating identical cache keysInclude all varying parameters in key; hash the full normalized request for uniqueness
Memory pressureCache grows unbounded consuming all available Redis memoryConfigure Redis maxmemory-policy to allkeys-lru; set per-key size limits; monitor memory usage

Refer to ${CLAUDE_SKILL_DIR}/references/errors.md for comprehensive error patterns.

Examples

Product catalog caching: Cache GET /products list for 5 minutes and GET /products/:id for 1 hour, invalidating both when any product is created, updated, or deleted via tag products.

User-specific dashboard: Cache dashboard data per user using cache:dashboard:{userId} keys with 30-second TTL, serving stale data during revalidation to keep perceived response time under 50ms.

CDN edge caching: Set Cache-Control: public, max-age=300, stale-while-revalidate=60 on public endpoints, enabling CloudFront to serve cached responses at the edge while revalidating asynchronously.

See ${CLAUDE_SKILL_DIR}/references/examples.md for additional examples.

Resources

When not to use it

  • For real-time data that changes constantly
  • For mutations (POST/PUT/DELETE) that alter resources

Prerequisites

Redis 6+ or MemcachedCache client library: `ioredis`, `redis-py`, or Lettuce

Limitations

  • Cache stampede can occur if TTLs expire simultaneously for popular keys
  • Stale data can be served if cache invalidation misses related resources
  • Redis connection failures can lead to degraded performance

How it compares

This skill provides structured implementation of various caching patterns and invalidation strategies for API responses, contrasting with basic, unmanaged in-memory caching.

Compared to similar skills

managing-api-cache side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
managing-api-cache (this skill)226dReviewAdvanced
generating-rest-apis026dReviewAdvanced
slack-bot-builder16moReviewIntermediate
migrate-backend-to-dts03moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

generating-rest-apis

jeremylongshore

Generate complete REST API implementations from OpenAPI specifications or database schemas. Use when generating RESTful API implementations. Trigger with phrases like "generate REST API", "create RESTful API", or "build REST endpoints".

02

slack-bot-builder

davila7

Build Slack apps using the Bolt framework across Python, JavaScript, and Java. Covers Block Kit for rich UIs, interactive components, slash commands, event handling, OAuth installation flows, and Workflow Builder integration. Focus on best practices for production-ready Slack apps. Use when: slack bot, slack app, bolt framework, block kit, slash command.

11

migrate-backend-to-dts

Azure-Samples

Migrate existing Azure Durable Functions apps from existing backend storage providers (Azure Storage, Netherite, MSSQL) to the Durable Task Scheduler. Use when switching backends, converting to azureManaged storage provider, upgrading from Azure Storage default provider, migrating from Netherite Eve

00

catalyst-sdk

catalystbyzoho

Catalyst SDKs — initialization patterns, service access, and method reference for Node.js, Web (browser), Python, Java, Android, iOS, and Flutter. Trigger on 'SDK', 'zcatalyst-sdk-node', 'Node.js SDK', 'Web SDK', 'Python SDK', 'Java SDK', 'Android SDK', 'iOS SDK', 'Flutter SDK', or 'initialize SDK'.

00

backend-bugfix

u1219437219-cmyk

Investigate and fix backend bugs involving APIs, data flow, jobs, logs, or intermittent server behavior.

00

generating-grpc-services

jeremylongshore

Generate gRPC service definitions, stubs, and implementations from Protocol Buffers. Use when creating high-performance gRPC services. Trigger with phrases like "generate gRPC service", "create gRPC API", or "build gRPC server".

13

Search skills

Search the agent skills registry