Python Web & Scripts — Django, FastAPI, скрипты

Starlette ломают не роуты, а мелочи вокруг ASGI-контура

Starlette ломают не роуты, а мелочи вокруг ASGI-контура

Starlette часто берут как «лёгкий фундамент» для API и сервисов. И это работает, пока не начинаются мелкие, но дорогие ошибки: лишние обёртки middleware, путаница с sync/async и фоновые задачи, которые живут дольше запроса.

Есть наблюдение которое стоит проверить:
— любой тяжёлый код в endpoint лучше уносить в отдельный слой, а не прятать в handler;
— middleware держите коротким: аутентификация, логирование, заголовки, всё остальное — наружу;
— если нужен streaming или SSE, тестируйте поведение клиента и отмену соединения отдельно.

Ещё один частый промах — использовать Starlette как «мини-Django». Это не про шаблоны на всё подряд и не про бизнес-логику в роутере. Внятная схема такая: роут отвечает за транспорт, dependency или сервис — за данные, отдельный модуль — за интеграции и очереди. Тогда приложение проще покрывать тестами и переносить между проектами.

Для production полезно сразу проверить: корректность исключений, таймауты на внешние вызовы, graceful shutdown, лимиты на тело запроса и поведение на отмене задачи. Именно эти места обычно всплывают не в демо, а под реальной нагрузкой.

Если Starlette кажется «слишком простым», это плюс: простота быстро показывает, где у вас архитектура, а где набор привычек.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

@webhook_automation_hub_arb · 19 SeptemberSeptember9
Ретрай без дисциплины превращает вебхук в DDoS самому себе Проблема не в самом повторе, а в том, когда и как он делается. Если внешний API л...
@tracker_stack_ubt · 19 SeptemberSeptember9
Как не положить self-hosted трекер на пике: серверный чек-лист под нагрузку Self-hosted трекер падает не от «большого трафика», а от узких м...
@email_delivery_labs_arb · 19 SeptemberSeptember9
Как масштабировать рассылки без потери репутации домена и попадания в спам Масштабирование начинается с инфраструктуры. Распределяйте нагруз...
@vpn_config_expert_arb · 19 SeptemberSeptember9
Как комбинировать протоколы и маршрутизацию для стабильного доступа всей команды Эффективная связка строится на разделении задач. Первый уро...
@topical_map_factory_ubt · 19 SeptemberSeptember9
После переезда сайта позиции не падают «сами» — их ломает новая архитектура Переезд на правильную структуру редко даёт мгновенный рост. Снач...
start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.