Никита Коровин vvetta2 Сбер ID
Рейтинг
61
№ 76 086 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Москва
Опыт работы
11 месяцев
На сайте с
2026 года
Юридический статус
Самозанятый

backend часть образовательной платформы learn-flow.ru

Используемые навыки Apache Kafka Docker Golang PostgreSQL Redis

Описание

Была поставлена задача разработать backend часть для образовательной платформы LearnFlow. Разработанный backend должен соответствовать всем современным стандартам, иметь распределенную и хорошо масштабируемую микросервисную архитектуру, иметь простой способ развертывания и выдерживать большое количество запросов.

Backend обязан производить регистрацию и аутентификацию пользователей с помощью отправки временного кода на адрес электронной почты. Создавать отдельный профиль для каждого пользователя, с возможностью последующего его редактирования. Также backend обязан хранить пользовательские практические задания.

Решение

Мной было решено разбить задачу на 3 независимых сервиса:
1) Auth-service - отвечает за авторизацию и регистрацию пользователей.
2) Users-service - отвечает за CRUD операции с пользовательским профилем.
3) Education-service - отвечает за сохранения пользовательского прогресса, а также размещение задач внутри тренажера.

При успешной регистрации пользователя, что может произойти только один раз, Auth-service направляет event в Kafka, которой затем подхватывает Users-service и создает профиль пользователя.

У каждого сервиса имеется своя отдельная база данных PostgreSQL.
Auth-service также использует Redis для временного хранения OTP.

Все сервисы запускаются внутри Docker контейнеров, и связываются с помощью Nginx API-Gateway.

Результат

Результат понравился заказчику. В итоге получилось современное, распределенное backend приложение, которое способно держать высокую нагрузку и полностью закрывает поставленную задачу.

Оценили проект: