
- Python 3.10;
- FastApi ( Web framework for building APIs );
- Docker and Docker Compose ( containerization );
- PostgreSQL ( database );
- SQLAlchemy ( working with database from Python );
- RabbitMQ ( Queue )
- Alembic ( database migrations made easy );
- Pydantic ( models )

- Клонировать проект в удобное место:
git clone https://github.com/Whitev2/bet-test-api.git
- Собрать и запустить контейнеры:
- Создание файла миграций:
docker-compose exec bet_maker alembic revision --autogenerate -m "init"
- Обновление базы данных:
docker-compose exec bet_maker alembic upgrade head
- Остановка контейнеров:
- Запуск контейнеров:
- Сервис позволяет просматривать активные ивенты
- Сервис позволяет делать ставки на активные ивенты
- Сервис позволяет просматривать свои ставки
- Сумма ставки не может быть меньше 0 - иначе будет вызвана ошибка
- Maker получает активные ивенты из Provider через endpoint url
- При изменении состояния со стороны Provider - меняется статус у ставки
- Обмен данными для изменения состояний реализован через aio-pika и RabbitMQ
- Все сервисы собираются в Docker Compose
- Возможна интеграция с k8s
- Покрыть все Юнитами
- Запись в базу должна быть транзакционной и атомарной
- Расставить блокировки чтобы исключить состояние гонки