Разработка бэкенд части маркетплейса с соц сетью

Задача


Разработать серверную часть для маркетплейса с соц. сетью.
Готов дизайн, начат фронтенд.


Начать нужно будет с нуля, проработать при старте:
  1. ERD (есть наброски)
  2. Архитектура проекта (описаны, доработать)
  3. Задачи по всему проекту
  4. Разработать серверную часть

Ищем мидл Go разработчика, от 2х лет опыта, вилку обсудим (tg @Artem3XXX)
Присылайте резюме https://t.me/Artem3XXX

  • Технологии

  • Golang
  • goose
  • pgx
  • sqlc
  • minimock
  • protoc
  • Postgresql
  • Kafka
  • Redis
  • Jaeger
  • Prometheus
  • Grafana
  • Pprof
  • GRPC

  • REST

    Основные требования к архитектуре и функциональности:

    • Сервисы реализуют функционал, соответствующий конкретной бизнес-потребности.
    • Не следует делать сервисы слишком большими и универсальными.
    • Мандат Безоса (в вольной форме):
      • Сервисы предоставляют доступ к данным и функциональности только через интерфейсы.
      • Сервисы взаимодействуют исключительно через интерфейсы.
      • Интерфейсы нужно грамотно проектировать.
    • Graceful degradation.
    • Принцип независимости состояния сервиса (Service statelessness principle).
    • Экземпляры сервиса должны быть независимыми друг от друга.
    • Экземпляры сервиса независимы от того, на каком физическом сервере запущены.
    • Интерфейсы: сервисы используют REST и gRPC.
    • С внешним интернетом сервисы работают по протоколу HTTPS (без gRPC).
    • Для взаимодействия между собой сервисы используют gRPC
    • Контакты - (telegram @Artem3XXX)

    1. Сервис пользователей (User Service)

    Управляет информацией о пользователях и их профилями.
    Функциональные требования:
    • регистрация пользователей;
    • управление профилями пользователей (CRUD);
    Нефункциональные требования:
    • время отклика на запросы не более 200 мс;
    • возможность обработки 10,000 пользователей одновременно;
    • шифрование данных пользователей.

    2. Сервис аутентификации (Authentication Service)

    Обеспечивает аутентификацию и авторизацию пользователей.
    Функциональные требования:
    • аутентификация пользователей;
    • выдача токенов доступа (JWT);
    • управление сессиями.
    Нефункциональные требования:
    • обеспечение безопасности аутентификации;
    • поддержка OAuth 2.0;
    • время отклика не более 100 мс.

    3. Сервис товаров (Product Service)

    Управляет информацией о товарах и категориях.
    Функциональные требования:
    • CRUD для товаров;
    • CRUD для категорий;
    Нефункциональные требования
    • 10000 RPS на чтение.

    4. Сервис заказов (Order Service)

    Управляет жизненным циклом заказов.
    Функциональные требования:
    • создание заказа;
    • получение информации о заказе;
    • обновление статуса заказа;
    • CRUD для заказов;

    Нефункциональные требования
    • 100 RPS на создание заказа;
    • гарантированная атомарность транзакций.

    5. Сервис платежей (Payment Service)

    Обрабатывает платежи и взаимодействует с платежными шлюзами.
    Функциональные требования:
    • создание платежа;
    • проверка статуса платежа;
    • обработка возвратов.
    Нефункциональные требования:
    • обеспечение непрерывности платежей;
    • 800 RPS на создание платежа.

    6. Сервис инвентаризации (Inventory Service)

    Управляет запасами товаров.
    Функциональные требования:
    • проверка наличия товара;
    • обновление запасов;
    • CRUD для инвентаря;

    Нефункциональные требования
    • обеспечение актуальности данных о запасах;
    • 500 RPS на обновление;

    7. Сервис поиска (Search Service)

    Предоставляет функциональность поиска по товарам и категориям.
    Функциональные требования:
    • поиск товаров по запросу;
    • поиск по категориям.

    Нефункциональные требования:
    • время ответа не более 300 мс;
    • 5000 RPS на поиск;
    • Индексация / использование Elasticsearch.

    8. Сервис отзывов (Review Service)

    Управляет отзывами пользователей о товарах.
    Функциональные требования:
    • добавление отзыва;
    • получение отзывов о товаре;
    • CRUD для отзывов

    Нефункциональные требования
    • обработка большого количества отзывов;
    • 1000 RPS на добавление отзыва.

    9. Сервис коллекций (Collection Service)

    Управляет пользовательскими коллекциями товаров.
    Функциональные требования:
    • добавление товара в коллекцию;
    • получение коллекций пользователя;
    • CRUD для коллекций.
    Нефункциональные требования
    • Время отклика не более 400 мс;

    10. Сервис публикаций (Post Service)


    Управляет публикациями пользователей в социальной сети.
    Функциональные требования:
    • создание публикации;
    • получение публикаций пользователя;
    • CRUD для публикаций;

    Нефункциональные требования:
    • обработка большого объема контента;
    • время отклика не более 300 мс;
    • интеграция с Image Storage Service.

    11. Сервис вишлистов (Wishlist Service)

    Управляет списками желаний пользователей.
    Функциональные требования
    • добавление товара в вишлист;
    • получение вишлиста пользователя;
    • CRUD для вишлистов;
    Нефункциональные требования
    • время отклика не более 200 мс;
    • поддержка миллионов вишлистов.

    12. Сервис избранного (Favorites Service)

    Управляет избранными объектами пользователей (товары, публикации, бренды, коллекции).
    Функциональные требования;
    • добавление в избранное;
    • получение избранного пользователя;
    • CRUD для избранного.
    Нефункциональные требования;
    • время отклика не более 200 мс;
    • поддержка миллионов записей;

    13. Сервис достижений (Achievement Service)

    Отслеживает и предоставляет информацию о достижениях пользователей.
    Функциональные требования:
    • получение достижений пользователя;
    • обновление достижений;
    • CRUD для достижений.

    14. Сервис уведомлений (Notification Service)

    Управляет отправкой уведомлений пользователям.
    Функциональные требования:
    • отправка уведомлений;
    • получение уведомлений пользователя;
    • CRUD для уведомлений.

    Нефункциональные требования:
    • гарантия доставки уведомлений;
    • обработка тысяч уведомлений в секунду;
    • использование очередей сообщений.

    15. Сервис аналитики (Analytics Service)

    Собирает и анализирует данные для отчетов и рекомендаций.
    Функциональные требования
    • сбор метрик и событий;
    • генерация отчетов;
    • предоставление данных другим сервисам.
    Нефункциональные требования
    • обработка большого объема данных;
    • быстрая обработка и агрегирование данных.

    16. Сервис брендов (Brand Service)

    Управляет информацией о брендах.
    Функциональные требования
    • CRUD для брендов;
    • Получение информации о бренде.

    Нефункциональные требования
    • время отклика не более 200 мс;
    • поддержка тысяч брендов.

    17. Сервис сообщений (Messaging Service)


    Обеспечивает возможность обмена сообщениями между пользователями.
    Функциональные требования
    • отправка сообщений;
    • получение сообщений;
    • CRUD для сообщений.

    Нефункциональные требования:
    • поддержка обмена сообщениями в реальном времени;
    • обработка большого количества активных пользователей;
    • шифрование сообщений?

    18. Сервис рекомендаций (Recommendation Service)

    Предоставляет персонализированные и не персонализированные рекомендации товаров пользователям.
    Функциональные требования:
    • генерация рекомендаций;
    • обновление моделей рекомендаций.
    Нефункциональные требования:
    • использование алгоритмов ML;
    • быстрая выдача рекомендаций.

    19. Сервис хранения изображений (Image Storage Service)

    Хранит и предоставляет доступ к изображениям товаров и публикаций.
    Функциональные требования
    • загрузка изображений;
    • получение изображений;
    • CRUD для изображений.
    Нефункциональные требования
    • хранение большого объема мультимедиа;
    • быстрая доставка контента;
    • контроль доступа к изображениям;
    • использование

    20. Сервис поддержки клиентов (Customer Support Service)

    Обеспечивает поддержку пользователей через тикеты и чат.
    Функциональные требования
    • создание тикетов;
    • чат с поддержкой;
    • CRUD для тикетов.
    Нефункциональные требования
    • быстрый отклик на запросы пользователей.

    Читайте на 123ru.net