Skip to content

[HIGH] No graceful degradation when Redis is unavailable #126

Description

@kilodesodiq-arch

Engineering Gap

BullMQ, rate limiting, caching, and session management all depend on Redis. No graceful degradation strategy documented or implemented. If Redis is unavailable, the application likely crashes or returns 500 errors on all endpoints.

Codebase Evidence

  • app/backend/src/app.module.ts lines 62-80, 112-122: BullMQ and Redis modules configured with forRootAsync
  • app/backend/src/common/guards/adaptive-rate-limit.guard.ts: Uses Redis — no fallback
  • app/backend/src/session/session.service.ts: Session management via Redis

Risk Profile

Single Redis failure blocks all aid distribution operations. No degraded mode.

Remediation Strategy

Implement Redis health check at startup. Add circuit breaker for Redis-dependent features. Allow read-only degraded mode for critical paths (claim status queries) without Redis.

Success Conditions

  • Redis health check at startup
  • Circuit breaker for Redis-dependent features
  • Degraded mode documented

Change Surface

Files: app.module.ts, health checks, Redis-dependent services

Security Review

No security impact. Improves availability.

Completion Checklist

  • Implementation completed
  • Peer reviewed
  • Tests passing
  • Ready for merge

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignhighHigh severity issuesinfrastructureInfrastructure and deployment

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions