Issue 008: Move newsletter per-IP limiter to Redis-backed implementation
Area: Backend
Priority: High
Files: services/api/src/newsletter.rs
Problem
In-memory limiter is per-instance and not safe for horizontal scaling. Multiple instances allow more requests than intended.
Acceptance Criteria
- Limits are shared across all instances via Redis\n- TTL-based counters are atomic\n- Load test confirms consistent behavior under horizontal scale\n- Fallback behavior on Redis failure is defined
Issue 008: Move newsletter per-IP limiter to Redis-backed implementation
Area: Backend
Priority: High
Files: services/api/src/newsletter.rs
Problem
In-memory limiter is per-instance and not safe for horizontal scaling. Multiple instances allow more requests than intended.
Acceptance Criteria