Такую структуру можно использовать для слоистой архитектуры: api — HTTP, application — сценарии, domain — бизнес-правила, inf — адаптеры БД, очередей, кеша и внешних API.
FastAPI, PostgreSQL (orm), RabbitMQ, Redis, Eternal APIs
Такую структуру можно использовать для слоистой архитектуры: api — HTTP, application — сценарии, domain — бизнес-правила, inf — адаптеры БД, очередей, кеша и внешних API.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
FastAPI, PostgreSQL (orm), RabbitMQ, Redis, Eternal APIs
src/api src/application src/domain src/inf
Ответ
Такую структуру можно использовать для слоистой архитектуры: api — HTTP, application — сценарии, domain — бизнес-правила, inf — адаптеры БД, очередей, кеша и внешних API.
В условии указан стек и каталоги, но не сформулировано отдельное задание; рассмотрим распределение ответственности. Роут FastAPI валидирует вход и вызывает сценарий приложения. Сценарий координирует доменные объекты, репозитории и транзакцию. PostgreSQL ORM, RabbitMQ, Redis и клиенты внешних API находятся за интерфейсами инфраструктуры. Domain не должен импортировать FastAPI или знать HTTP-статусы. Зависимости связываются при старте приложения. Внешние вызовы получают таймауты, повторяемые операции — ключи идемпотентности; ошибки переводятся в HTTP на границе API.