Разработать ленту новостей. Добавить функционал "добавление поста". Создается отдельная страница, куда пишутся все обновления друзей. Для этого нужно хранить подписчиков. Лента формируется на уровне кешей. Формирование ленты производить через постановку задачи в очередь на часть подписчиков, чтобы избежать эффекта леди Гаги. В ленте держать последние 1000 обновлений друзей. Лента должна кешироваться.
Требования: Верно работает инвалидация кеша. Обновление лент работает через очередь. Есть возможность перестройки кешей из СУБД.
В результате выполнения работы была создана таблица UserPost. Для упрощения концепции посты представлены в виде plain text а-ля Twitter. Для выполнения были выбраны следующие инструменты:
- Брокер сообщений - RabbitMq
- C# Клиент для RabbitMq - Masstransit
- Кэш - Redis (возможно будет заменен на Tarantool в следующих работах)
Флоу следующий:
- Пользователь со страницы новостей переходит на страницу создания поста