11. Risks and Technical Debts¶
11.1 Risks¶
ID |
Risk |
Probability |
Impact |
Mitigation |
|---|---|---|---|---|
R-01 |
PostgreSQL single instance becomes a bottleneck under high write load |
Medium |
High |
Add read replicas for feed queries; evaluate partitioning on |
R-02 |
Fan-out on read feed degrades as followee count grows beyond ~1 000 |
Medium |
High |
Introduce a pre-computed feed cache (Redis) or switch to fan-out on write (see ADR-004) |
R-03 |
RS256 key rotation causes service downtime if not coordinated |
Low |
High |
Implement a JWKS endpoint on the Users Service; services fetch keys dynamically |
R-04 |
Cross-context API calls create runtime coupling (cascading failures) |
Medium |
Medium |
Add timeouts and circuit breakers (e.g. |
R-05 |
|
Medium |
Medium |
Keep |
11.2 Technical Debts¶
ID |
Debt |
Impact |
Remediation |
|---|---|---|---|
TD-01 |
No caching layer — all feed queries hit PostgreSQL directly |
Performance degrades at scale |
Introduce Redis for feed and profile caching |
TD-02 |
No async task queue — email sending is synchronous in the request path |
Increased latency on registration/notification endpoints |
Offload to a task queue (e.g. Celery + Redis or ARQ) |
TD-03 |
No API versioning strategy defined |
Breaking changes will affect all clients simultaneously |
Adopt URL versioning ( |
TD-04 |
Alembic migrations run on startup in development — risky if applied to production accidentally |
Unintended schema changes in production |
Enforce migration-only CI job; remove auto-migrate from startup in all environments |