Система предназначена для обработки поступающих из NATS streaming
заказов.
Представлены 2 сервиса
- Сервис обработки заказов
wborder
(основной) - Сервис отправки сообщений в Nats streaming
natsproducer
Краткое описание:
- В сервисе
natsproducer
доступно api для отправки заказов (без ошибок и с ошибками) - В сервисе
wborder
доступно api для поиска заказа по id, получения всех заказов, просмотра статистики обработки - Основной сервис асинхронно обрабатывает поступающие заказы.
- Реализован простейший
cache
в видеmap
(TODO заменить на redis) - Конфигурация сервиса через соответствующие
env
файлы илиdocker-compose
файл - Реализованы тесты с использованием
testcontainers
(требуетсяdocker
TODO дополнить и расширить)
Используемые технологии:
- PostgreSQL/pgx
- Docker/Docker compose
- NATS Streaming/stan
- Echo
- golang-migrate/migrate
- testcontainers, testify
- go-playground/validator
Запуск возможен в т.ч. с использованием
- Скопировать проект
git clone
- Выполнить команду из корня
docker compose up
Для тестирования приложения можно воспользоваться коллекцией postman
запросов
Схема базы данных (в т.ч. скрипт создания бд).