Тестовое задание которое включае в себя следующие задачи:
- Написание сервиса по получению заказов с помощью Nats Streaming и сохранению их в Postgres БД
- Добавление кеш системы для ускорения доступа к данным
- Создание HTTP сервера способного выдавать заказы по его уникальному идентификатору
- Кеш использует библиотеку
go-cache
, сохраняет каждый новый заказ и восстанавливает после падения сервиса последние 100 заказов основывая на обратном лексиграфическом порядке их id - В качестве интерфейса реализован swagger с помощью библиотеки
swag
Install packages:
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
go install github.com/swaggo/swag/cmd/swag@latest
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
Copy config:
$> cp config/env.example config/.env
А также Доступные команды:
$> make generate # сгененрировать swagger и sqlc код
$> make init # запуск проекта включая проведение миграций
$> make start # поднятие контейнеров
$> COUNT=5 make send # генерация и отправка тестовых заказов
$> make stop # остановка контейнеров