Стек:
- python3.8
- fastapi
- SqlAlchemy
- PostgreSql
- pytest - авто-тесты
Запуск проекта - docker-compose up
Документация - http://0.0.0.0:8000/api/v1/docs
Запуск авто-тестов - docker-compose -f docker-compose-test.yml up
Фреймворк fastapi для меня в новинку, это первое приложение написанное мной на этом fastapi. Бенчмарки по немумне понравились, со всеми плюсами описанными в документация согласен. Планирую использовать его в продакшене.
SqlAlchemy взял в качесвте ORM по заданию, поэтому написал синхронный код. В ситуации когда есть больше времени - я бы поисследовал производительность сервиса с ORM и без ORM, без ORM можно было бы использовать Query-builder к примеру из алхимии и использовать iopg. Это бы исключило блокировки при общении с бд и в теории дало бы большую производительность. В общем - нужно исследовать, сейчас это синхронный код.
Заложил структуру проекта аля DDD, есть автоматические тесты.
Уровень изоляции READ COMMITTED, считаю его достаточным для реализации текущегой API)
Достаточно обернуть создание пользователя и кошелька в транзацию, то есть создастся все или ничего
Использовал атомарные операции postgress
Использовал конструкцию select for update