refactor(api): add redis-backed rate limiting fallback
This commit is contained in:
@@ -58,9 +58,9 @@ The previously critical SSE and browser parser coverage issues were addressed du
|
||||
|
||||
### Medium
|
||||
|
||||
1. Rate limiting is process-local and not deployment-grade.
|
||||
Evidence: [rate-limit.ts](/home/hartmut/Documents/Copilot/capakraken/packages/api/src/middleware/rate-limit.ts) uses an in-memory `Map` and explicitly notes that multi-instance deployments need Redis-backed replacement.
|
||||
Risk: protections weaken as soon as the app scales horizontally.
|
||||
1. Rate limiting now supports deployment-grade shared counters, but rollout discipline still matters.
|
||||
Evidence: [rate-limit.ts](/home/hartmut/Documents/Copilot/capakraken/packages/api/src/middleware/rate-limit.ts) now prefers Redis-backed counters when `REDIS_URL` is configured, while preserving an in-memory fallback for local development and degraded operation.
|
||||
Risk: protections still depend on production actually wiring Redis for all instances instead of silently running on the fallback path.
|
||||
|
||||
2. Performance hotspots are well understood but not yet structurally solved.
|
||||
Evidence: the current performance review identifies repeated in-memory filtering, broad invalidation, and heavyweight timeline/report derivations in [performance-optimization-review-2026-03-18.md](/home/hartmut/Documents/Copilot/capakraken/docs/performance-optimization-review-2026-03-18.md).
|
||||
@@ -193,7 +193,7 @@ Goals:
|
||||
|
||||
- complete the move to image-based deploys as the canonical path
|
||||
- document staging and production bootstrap as code, not tribal knowledge
|
||||
- replace in-memory rate limits with Redis-backed limits where appropriate
|
||||
- ensure staging and production run the Redis-backed rate-limit path intentionally and monitor fallback usage
|
||||
- define rollback drills and incident response playbooks
|
||||
|
||||
Definition of done:
|
||||
|
||||
Reference in New Issue
Block a user