да это усложняет, но есть сильное ощущение что задачу можно решить элегантнее что даст сильную экономию в ресурсах, я в первую очередь это имею ввиду а не оптимизацию кода/хранилища, хотя с хранилищем такое же ощущение, что mongo тут overkill и на ней сэкономить можно очень существенно
Вообще решение действительно очень прямолинейное, но у него есть простое обоснование: сервис очень важен для продукта, при его отказах раз в 3-4 месяца метрики сразу втыкаются в землю: люди открывают приложение, видят то же самое, что уже видели, и тут же закрывают.
Мы думали вообще хранить отметки о прочтении на клиенте, но опять же, у настойчивого юзера их может скапливаться тысяч 10 в месяц, непонятно как делать запрос на новый контент в таком раскладе.