1.7 KiB
1.7 KiB
Purpose
Provide a shared caching layer (Redis-backed) for ingestion and content processing flows, with TTL-based invalidation and manual cache clearing.
ADDED Requirements
Requirement: Redis-backed cache service
The system MUST provide a Redis-backed cache service for use by ingestion and content processing flows.
The cache service MUST be runnable in local development via Docker Compose.
Scenario: Cache service available in Docker
- WHEN the Docker Compose stack is started
- THEN a Redis service is available to other services/scripts on the internal network
Requirement: TTL-based invalidation
Cached entries MUST support TTL-based invalidation.
The system MUST define a default TTL and MUST allow overriding the TTL via environment/config.
Scenario: Default TTL applies
- WHEN a cached entry is written without an explicit TTL override
- THEN it expires after the configured default TTL
Scenario: TTL override applies
- WHEN a TTL override is configured via environment/config
- THEN new cached entries use that TTL for expiration
Requirement: Cache key namespace
Cache keys MUST be namespaced by source and parameters so that different data requests do not collide.
Scenario: Two different sources do not collide
- WHEN the system caches a YouTube fetch and a WordPress fetch
- THEN they use different key namespaces and do not overwrite each other
Requirement: Manual cache clear
The system MUST provide a script/command to manually clear the cache.
Scenario: Manual clear executed
- WHEN a developer runs the cache clear command
- THEN the cache is cleared and subsequent ingestion runs produce cache misses