Изучаю Python, и нужна практика, поэтому решил сделать учебный/pet-проект. Задачи проекта:
- получение от пользователя наименования товара;
- предварительный парсинг магазина с целью найти товар;
- направление пользователю ссылки на найденный товар для подтверждения;
- после подтверждения постановка товара на ежедневный парсинг;
- уведомление пользователя об изменении цены на 5%+.
Потом список функций можно нарастить, пока хочется реализовать именно этот минимум.
Погуглив информацию про возможные архитектурные подходы и технологии, решил сделать нечто такое:
Бесспорным слабым местом такого подхода будет парсер, поэтому точно потребуется создание очереди. Для очереди хочется сделать "костыль"/"велосипед", а не использовать готовое решение (учеба же). Потом можно будет прикрутить RabbitMQ. Пока вижу следующие решения:
- реализация очереди на API-сервере. Сервер будет вести очередь парсинга и "пулять" запросы в парсер. После получения ответа удалять задачу из очереди;
- реализация очереди на самом парсере. Но для этого, видимо, нужно будет к парсеру прикрутить простенькую БД.
Посоветуйте, пожалуйста, что можно улучшить в архитектуре/технологиях? Проект учебный, пользоваться им буду я и друзья/знакомые, поэтому нагрузка будет небольшая, но хочется все же сделать проект, который использует более-менее промышленные технологии.