# Reachability Fallback Mechanisms ## Module ReachGraph ## Status IMPLEMENTED ## Description ReachGraph service with slice and replay capabilities for reachability analysis with deterministic replay support. ## Implementation Details - **IReachGraphStoreService**: `src/ReachGraph/StellaOps.ReachGraph.WebService/Services/IReachGraphStoreService.cs` -- `UpsertAsync`, `GetByDigestAsync`, `ListByArtifactAsync`, `DeleteAsync` for graph storage with fallback - **ReachGraphStoreService**: `src/ReachGraph/StellaOps.ReachGraph.WebService/Services/ReachGraphStoreService.cs` -- coordinates between `IReachGraphRepository` (persistence), `IReachGraphCache` (caching), and `IReachGraphSignerService` (signing); supports digest-based idempotent upserts - **IReachGraphSliceService**: `src/ReachGraph/StellaOps.ReachGraph.WebService/Services/IReachGraphSliceService.cs` -- multi-dimensional slice queries (by-package, by-CVE, by-entrypoint, by-file) with configurable depth and direction - **ReachGraphSliceService**: `src/ReachGraph/StellaOps.ReachGraph.WebService/Services/ReachGraphSliceService.cs` -- cached slice computation; falls back to full graph loading when cache misses - **IReachGraphReplayService**: `src/ReachGraph/StellaOps.ReachGraph.WebService/Services/IReachGraphReplayService.cs` -- deterministic replay as fallback verification mechanism - **ReachGraphReplayService**: `src/ReachGraph/StellaOps.ReachGraph.WebService/Services/ReachGraphReplayService.cs` -- replays computation from SBOM, VEX, callgraph, and runtime facts inputs; compares computed digest against expected - **PaginationService**: `src/ReachGraph/StellaOps.ReachGraph.WebService/Services/PaginationService.cs` -- cursor-based pagination for large result sets - **Tests**: `src/ReachGraph/__Tests/StellaOps.ReachGraph.WebService.Tests/ReachGraphApiIntegrationTests.cs` - **Source**: Feature matrix scan ## E2E Test Plan - [ ] Verify graph retrieval falls back from cache to database when cache misses - [ ] Test slice queries degrade gracefully when full graph is not available - [ ] Verify replay verification provides fallback for determinism validation - [ ] Test idempotent upsert handles concurrent writes without data loss - [ ] Verify pagination handles large result sets with cursor-based navigation