Back to skills
SKILL.md
Caching Strategy
ASecurityDesign comprehensive multi-layer caching strategies across CDN, application, and database tiers for maximum performance.
- 3 stars
- 0 votes
- 0 copies
- 1 view
- Added September 6, 2026
Works with
Security analysis
100/100npx -y skills add AtulPurohit/Antigravity-Awesome-Skills --skill caching-strategy --agent claude-codeAre you the author of Caching Strategy?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/atulpurohit-caching-strategy)---
name: caching-strategy
description: "Design comprehensive multi-layer caching strategies across CDN, application, and database tiers for maximum performance."
category: architecture
tags: [caching, redis, cdn, performance, strategy]
complexity: advanced
risk: low
compatibility: [claude-code, antigravity, gemini-cli, cursor, copilot, codex-cli, autohand, kiro]
source: antigravity-official
version: "1.0.0"
date_added: "2026-07-10"
last_updated: "2026-07-10"
---
# Caching Strategy Designer
## Purpose
Design and implement caching at every layer to dramatically reduce latency and database load.
## Cache Layers
1. **Browser Cache**: Static assets, API responses with Cache-Control headers
2. **CDN Cache**: Cloudflare/CloudFront for global edge caching
3. **Application Cache**: Redis/Memcached for computed data
4. **Database Cache**: Query result cache, connection pooling
## Cache-Control Headers
```
# Immutable static assets (hash in filename)
Cache-Control: public, max-age=31536000, immutable
# API: cache for 60s, stale-while-revalidate for 5 min
Cache-Control: public, s-maxage=60, stale-while-revalidate=300
# Private user data
Cache-Control: private, no-cache
# Never cache
Cache-Control: no-store
```
## Application Cache Pattern
```python
# Cache-aside with stampede prevention
def get_cached(key: str, ttl: int, fetch_fn: callable):
if value := cache.get(key):
return value
# Atomic lock prevents stampede
with cache.lock(f"lock:{key}", timeout=10):
# Double-check after acquiring lock
if value := cache.get(key):
return value
value = fetch_fn()
cache.set(key, value, ttl)
return value
```
## Invalidation Strategies
- **TTL-based**: Expire after fixed time (simple, may be stale)
- **Event-driven**: Invalidate on data change (accurate, complex)
- **Tag-based**: Group related cache items, flush by tag
- **Cache-busting**: Change URL/key when content changes
## Outputs
1. Caching strategy document
2. Cache-Control header configuration
3. Application cache implementation
4. Invalidation event handlers
5. Cache monitoring metrics
Attribution
Comments
Loading comments…