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.zipInstalls 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, andKey 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
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
- 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).
- 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).
- Build a cache-aside middleware that checks the cache before executing the handler, returning cached responses with
X-Cache: HITheader, or executing the handler, caching the result, and returning withX-Cache: MISS. - 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.
- Implement cache invalidation on mutations: when a POST/PUT/DELETE modifies a resource, invalidate all cached responses containing that resource using tag-based invalidation.
- Add
Cache-Control,ETag, andLast-Modifiedresponse headers for HTTP-level caching, enabling CDN and browser cache participation. - Implement stale-while-revalidate behavior: serve stale cached responses immediately while asynchronously refreshing the cache in the background, reducing perceived latency.
- Add cache warming for critical endpoints: pre-populate cache entries on application startup or schedule for frequently accessed resources.
- 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
| Error | Cause | Solution |
|---|---|---|
| Cache stampede | TTL expires simultaneously for popular key; many requests hit database | Use lock-based revalidation (only one request refreshes); apply jittered TTLs |
| Stale data served | Cache invalidation missed a related resource after mutation | Implement tag-based invalidation covering all affected cache keys; add invalidation audit logging |
| Redis connection failure | Cache store unavailable due to network or server issue | Fall through to database with degraded performance; log cache bypass; alert on sustained failures |
| Cache key collision | Different requests generating identical cache keys | Include all varying parameters in key; hash the full normalized request for uniqueness |
| Memory pressure | Cache grows unbounded consuming all available Redis memory | Configure 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
- Redis caching patterns: https://redis.io/docs/manual/patterns/
- HTTP caching (MDN): https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching
- Cache-aside vs. read-through vs. write-through patterns
- Stale-while-revalidate: RFC 5861
When not to use it
- →For real-time data that changes constantly
- →For mutations (POST/PUT/DELETE) that alter resources
Prerequisites
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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| managing-api-cache (this skill) | 2 | 26d | Review | Advanced |
| generating-rest-apis | 0 | 26d | Review | Advanced |
| slack-bot-builder | 1 | 6mo | Review | Intermediate |
| migrate-backend-to-dts | 0 | 3mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →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".
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.
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
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'.
backend-bugfix
u1219437219-cmyk
Investigate and fix backend bugs involving APIs, data flow, jobs, logs, or intermittent server behavior.
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".