Python-система: FastAPI-сервис обработки заявок с очередью Redis
Заявка уходит в очередь за 100 мс, воркер пишет в CRM и почту — на пике ничего не теряется.
Docker, FastAPI, PostgreSQL, Python, Redis
Клиент — B2B-сервис заявок на монтаж (200+ заявок/день). Старый синхронный PHP принимал POST и падал при пиках; заявки терялись, статусы не обновлялись. Нужен надёжный API + асинхронная обработка.
Задача: Python-система — FastAPI принимает заявку → Redis queue → worker обрабатывает (валидация, CRM, email) → статус в PostgreSQL. REST для фронта и мобильного приложения.
- POST /applications → 202 Accepted + application_id;
- Redis List / Stream + worker (asyncio или RQ);
- worker: AmoCRM create deal, SendGrid email, assign manager by region;
- GET /applications/{id}/status — pending / processing / done / failed;
- retry failed jobs, dead letter queue, admin endpoint replay;
- JWT auth, rate limit, OpenAPI docs;
- Docker Compose: api + worker + redis + postgres.
Стек: Python 3.11, FastAPI, Redis, PostgreSQL, SQLAlchemy, Docker. Приёмка: load test 500 req/min, 0 lost applications.
Итог: uptime 99.9%; время ответа API < 100 ms (очередь — async). NDA: сервис не публикуется.