Для каждого пользователя в системе необходимо составить список рекомендованных друзей. Список строится на основе количества общих друзей, а также интересов конкретного пользователя.
Предполагается реализовать данную задачу в виде микросервиса, взаимодействующего с другими частями приложения с помощью API.
Для работы сервису рекомендаций необходимо взаимодействовать с другими микросервисами системы: списками друзей пользователей и профилям пользователей, содержащим информацию об интересах, возрасте и местоположении. Также для построения рекомендаций может быть использован социальный граф.
Для каждого пользователя в системе хранятся два списка: список рекомендованных друзей и список людей, удаленных из рекомендаций. Список рекомендаций формируется по следующим критериям:
-
Количество общих друзей
-
Возрастная категория
-
Общие интересы
-
Географическое положение
Список рекомендаций пересчитывается при следующих условиях:
-
Периодическое обновление
-
Добавление пользователя в друзья
-
Удаление пользователя из друзей
Список удаленных рекоменвдаций составляется на основе запросов пользователя.
Микросервис предусматривает следующие методы для взаимодействия:
| Параметр | Описание |
| user_id | id пользователя, для которого нужно получить список рекомендаций |
| Параметр | Описание |
| user_id | id владельца списка |
| recommended_user_id | id пользователя, которго нужно удальть из рекомендацций |
-
Необходимо заново составлять список рекомендаций при изменении списка друзей пользователя.
-
Пользователь только зарегистрировался, у него уще нет друзей, и профиль не полностью заполнен. В этом случае необходимо иметь какой-либо стандартный список рекомендаций.
-
Проблема увеличения количесва удаленных рекомендаций.