Проект состоит из нескольких сервисов:
- Poller Берёт bitcoin-обновления из открытого источника и кладёт в базу данных. Стэк: Nodejs, Prisma, Axios
- Migrator Применяет prisma-схему при самом первом запуске docker-compose.yaml
- Postgres
- Nuxt-btc (UI) (https://github.com/murningstar/testtask-nuxt-plot-btc) SSR, Api сервер. Отображает данные из базы на графике с помощью vue-chartjs. Стэк: Nuxt, Chart.js, NaiveUI, Tailwind, Prisma.
Делает длинные опросы API открытого источника btc-обновлений и кладёт в Postgres только свежие данные.
Инициализирует схему при первом запуске compose-стэка.
Здесь ничего необычного.
Описание в самом репозитории https://github.com/murningstar/testtask-nuxt-plot-btc.
- Запускается postgres
- Migrator ждёт, пока postgres станет healthy
- Migrator проверяет, первый ли это запуск и если так, то применяет миграцию; иначе - просто отключается
- Poller - начинет длинные опросы внешнего API. (после успешного выключения Migrator'а)
- Если появляется обновление, то poller кладёт его в Postgres
- Nuxt-btc - запускается после выключения Migrator также как и Poller.
- Для работы migrator-сервиса необходимо заперсистить
/usr/migrator