2.0 KiB
2.0 KiB
SBOM Lineage Hover Cache with Valkey
Module
SbomService
Status
IMPLEMENTED
Description
Valkey-backed (Redis-compatible) caching layer for SBOM lineage graph hover card data. Pre-computes and caches component diff summaries, VEX delta counts, and provenance metadata for instant hover card rendering without round-trips to PostgreSQL.
Implementation Details
- Hover cache interface and implementation:
src/SbomService/StellaOps.SbomService/Services/LineageHoverCache.cs--ILineageHoverCachewithGetAsync,SetAsync,InvalidateAsyncfor hover card data; 5-minute TTL targeting <150ms response times - Valkey compare cache:
src/SbomService/StellaOps.SbomService/Services/ValkeyLineageCompareCache.cs--ILineageCompareCacheimplementation usingIDistributedCache(Valkey/Redis) with 10-minute TTL, cache hit/miss/invalidation counters, andActivitySourcetracing - In-memory fallback:
src/SbomService/StellaOps.SbomService/Services/InMemoryLineageCompareCache.cs-- in-memoryILineageCompareCachefor testing and non-Valkey deployments - Cache interface:
src/SbomService/StellaOps.SbomService/Services/ILineageCompareCache.cs-- compare cache contract - Hover card model:
src/SbomService/StellaOps.SbomService/Models/SbomProjectionModels.cs--SbomLineageHoverCardused as cached entity - Frontend hover card:
src/Web/StellaOps.Web/src/app/features/lineage/components/lineage-hover-card/lineage-hover-card.component.ts-- Angular hover card component - DI registration:
src/SbomService/StellaOps.SbomService/Program.cs-- Valkey cache services registered in DI - Source: SPRINT_20251228_005_BE_sbom_lineage_graph_i.md
E2E Test Plan
- Verify hover card data is cached with 5-minute TTL
- Test cache invalidation when artifact digest changes
- Verify <150ms response time for cached hover card requests
- Test Valkey compare cache hit/miss tracking metrics
- Verify in-memory fallback works when Valkey is unavailable