Как организовать архитектуру для запроса, который выполняет бизнес-логику, ходит во внешний сервис (Google) и сохраняет результат в БД? Опиши по слоям сверху вниз.

Разделите HTTP-слой, сценарий приложения, адаптер внешнего API и репозиторий БД. Внешний сетевой вызов не стоит выполнять под длительной транзакцией с блокировками.

Короткий ответ

Что ответить на собеседовании

Разделите HTTP-слой, сценарий приложения, адаптер внешнего API и репозиторий БД. Внешний сетевой вызов не стоит выполнять под длительной транзакцией с блокировками.

Подробный разбор

Ответ с пояснениями

Разделите HTTP-слой, сценарий приложения, адаптер внешнего API и репозиторий БД. Внешний сетевой вызов не стоит выполнять под длительной транзакцией с блокировками.

Handler проверяет транспортные данные и передаёт запрос use case. Use case применяет бизнес-правила, вызывает внешний gateway с timeout, проверяет ответ и сохраняет результат через repository. Конкретные клиенты и драйверы остаются за адаптерами.

Если операция длительная, можно вернуть идентификатор задания и обработать её фоново. Продумайте идемпотентность, повтор после частичного успеха и статус ошибки. Общая атомарная транзакция между произвольным Google API и вашей БД обычно отсутствует, поэтому сценарий должен учитывать эту границу.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее