README ¶ Тестовое задание стажёра Wildberries L0 Сервис producer публикует данные в канал NATS Streaming. Сервис consumer подключается и подписывается на канал в NATS Streaming; получает данные и пишет в базу данных Postgres; кеширует полученные данные in memory в сервисе; в случае падения сервис восстанавливает кеш из базы данных Postgres; поднимает HTTP сервер и выдаёт данные по UID из кеша; реализован простейший интерфейс отображения полученных данных по UID. Сервис shutdowner реализует graceful shutdown. HTTP-хендлеры GET / — интерфейс отображения полученных данных; GET /getStats — получение статистик (количество заказов, последние идентификаторы); POST /getOrderByUID — получение заказа по уникальному идентификатору. Конфигурирование Может происходить с помощью флагов командной строки наравне с уже имеющимися переменными окружения: флаг -a отвечает за адрес и порт запуска сервиса (переменная RUN_ADDRESS); флаг -d отвечает за адрес подключения к базе данных (переменная DATABASE_URI); флаг -c отвечает за значение кластера NATS Streaming (переменная STAN_CLUSTER_ID); флаг -s отвечает за значение канала NATS Streaming (переменная STAN_SUBJECT). Expand ▾ Collapse ▴ Directories ¶ Show internal Expand all Path Synopsis cmd main internal config handlers logger models router server services/consumer services/producer services/shutdowner storages storages/postgres Click to show internal directories. Click to hide internal directories.