See coordinator findings C-NotifRetain. NotificationService exposes get/mark-read/publish only — no per-item delete, no retention worker (unlike audit logs with 90-day AuditRetention), and GetNotificationsAsync takes no limit/offset. Rows grow unboundedly per user and the list read returns all of them. Suggested: add a retention sweep for old read notifications (and/or user delete), plus limit/offset on the list endpoint.
See coordinator findings C-NotifRetain. NotificationService exposes get/mark-read/publish only — no per-item delete, no retention worker (unlike audit logs with 90-day AuditRetention), and GetNotificationsAsync takes no limit/offset. Rows grow unboundedly per user and the list read returns all of them. Suggested: add a retention sweep for old read notifications (and/or user delete), plus limit/offset on the list endpoint.