image
Клиент — 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: сервис не публикуется.