Skip to content

kancom/jaxel_task

Repository files navigation

Finally I was unable to use Tortoise ORM due to its migration framework aerich. It failed on init-db command @ https://github.com/tortoise/aerich/blob/dev/aerich/__init__.py#L140 with tortoise.exceptions.ConfigurationError: default_connection for the model <class 'aerich.models.Aerich'> cannot be None while it actually creates table in db:

jaxel=# \d
 public | quote              | table    | jaxel
 public | quote_quote_id_seq | sequence | jaxel

I quit digging to deep and long for test task. I kept all aerich staff and switched to sqlalchemy

Необходимо реализовать систему из двух микросервисов. Сервисы должны общаться между собой через Kafka (использовать ее как шину). Все взаимодействие должно быть асинхронное. БД - Postgres, фреймворк - FastAPI или Starlette. Система должна разворачиваться через docker-compose.

Микросервис 1: получает данные о курсах обмена валют из внешнего сервиса Garantex (https://garantexio.github.io/#f00f8079b3) для пары USDT/RUB (market=usdtrub) и отправляет эти данные в Микросервис 2. Интервал получения значения курса должен настраиваться через env, значение по умолчанию - 5 секунд.

Микросервис 2: получает данные из Kafka и записывает информацию о курсах в БД. Для работы с БД необходимо использовать Tortoise ORM.

About

test task for Jaxel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published