--- issue: 123 title: "Backend: notification unread-count chatty DB access — 3 parallel countDocuments per event" severity: low domain: Notification labels: [performance, backend, database] status: open created: 2026-05-30 source: Full Codebase Audit 2026-05-30 --- # Backend: notification unread-count chatty DB access — 3 parallel countDocuments per event **Severity:** low **Domain:** Notification **Labels:** performance, backend, database ## Description `NotificationService.ts:145` runs 3 `countDocuments` calls per unread-count request. When notification events are frequent, this creates a high volume of DB count queries. Under heavy load, these compete with write operations. ## Options 1. Cache per-user unread count in Redis, increment/decrement on events. 2. Coalesce the 3 parallel `countDocuments` into fewer aggregations. 3. Leave as-is (covered by existing index) and only optimize if hot. ## Recommendation Introduce a Redis-backed unread counter updated incrementally; until then, coalesce counts. ## Affected Files - `backend/src/services/notification/NotificationService.ts:145` ## References - [Full Codebase Audit 2026-05-30](../09%20-%20Audits/Full%20Codebase%20Audit%20-%202026-05-30.md) — DEC-44