Files
Kecalek_python/TODO.md
2026-03-11 16:54:14 +01:00

23 lines
971 B
Markdown

# TODO
## Distributed global cap for phantom users (multi-process safe)
1. Add DB-backed quota as source of truth (`system_quotas` table, row `phantom_users` with `used` and `limit`).
2. Move cap enforcement into one DB transaction:
- lock quota row with `SELECT ... FOR UPDATE`
- check `used < limit`
- create phantom user
- increment `used`
- commit (or rollback on failure).
3. Handle same-email races using `UNIQUE(email)`:
- on duplicate key, do not increment quota
- return existing user (or unified error response).
4. Add periodic reconciliation job:
- recalculate phantom count from `users`
- repair `system_quotas.used` if drift is detected.
5. Move phantom creation rate-limits to shared backend (Redis or DB atomic counters), so all server processes enforce the same limits.
6. Add concurrency tests:
- multi-process create storm near cap boundary (499/500)
- duplicate-email storm
- assert `used <= limit` always holds.