Техническое задание: Микросервис «Складские остатки»
Цель проекта
Разработать высокопроизводительный и надежный бэкенд-сервис для управления актуальными данными о количестве товаров на складе. Сервис должен обеспечивать мгновенное обновление и предоставление информации даже при интенсивной нагрузке.
Стек технологий
- Язык программирования: Rust
- Веб-фреймворк: Actix-web
- База данных: PostgreSQL
- Взаимодействие: REST API (JSON)
Ключевые требования к функционалу
Основные операции
- Получение текущего остатка товара по его идентификатору (ID).
- Оперативное изменение остатка (увеличение/уменьшение) с фиксацией причины операции (например, «приход», «продажа», «списание»).
- Получение истории операций по конкретному товару за указанный период.
Требования к производительности и надежности
- Архитектура должна быть рассчитана на обработку высокого RPS (запросов в секунду).
- Необходимо обеспечить консистентность данных при параллельных операциях.
- Реализовать корректную обработку ошибок и логирование ключевых событий.
- Продумать стратегию подключения к БД (пулы соединений).
- Код должен быть чистым, документированным и покрытым базовыми тестами.
Дополнительные пожелания
- Наличие Dockerfile для контейнеризации сервиса.
- Примеры запросов и ответов API (curl или Postman-коллекция).
- Краткое описание развертывания.