Sergei Shmelev
FullStack разработчик (JavaScript/TypeScript) · 27.02 · ред.
Как я выбирал стек для проекта: NestJS или FastAPI 🚀
Передо мной стояла задача: раз в сутки обрабатывать более 1 млн строк из Excel и сохранять данные в PostgreSQL. Нужно было найти оптимальное решение, которое: ✅ Быстро обработает большой объем данных. ✅ Гибко масштабируется. ✅ Останется удобным в поддержке и развитии.
Рассматривал два варианта для backend'а: 🔹 FastAPI (Python) – быстрый, удобный для асинхронных задач и работы с данными. 🔹 NestJS (TypeScript) – мощный, модульный, отлично подходит для построения API.
🔥 Какой стек выбрал и почему? Решил использовать оба, разделив их роли:
✅ NestJS – основной API: Отвечает за работу с пользователями, авторизацию. Выполняет CRUD-операции. Подключается к PostgreSQL через Prisma. Направляет задачи на обработку данных в очередь.
✅ FastAPI – обработка больших данных: Загружает 1M+ строк из Excel. Преобразует их в нужный формат. Работает в фоне через Celery + Redis. Принимает задачи от NestJS через HTTP/gRPC.
✅ Очереди задач (Redis / RabbitMQ / Kafka): NestJS отправляет задачи на обработку. FastAPI забирает их из очереди и выполняет.
🛠 С какими проблемами столкнулся? 1️⃣ NestJS не мог подключиться к PostgreSQL → оказалось, использовался старый volume. Решение: очистил volume, пересоздал контейнеры. 2️⃣ Prisma Studio не открывался по localhost:5555 → добавил проброс порта в docker-compose.yml. 3️⃣ Контейнеры имели нестабильные имена (backend-nestjs-1, backend-db-1) → явно задал container_name.
✅ Итог NestJS отлично справляется с API и обработкой пользователей. FastAPI быстро загружает и преобразует большие файлы. Redis / RabbitMQ помогают эффективно распределять задачи. Теперь система настроена и готова к дальнейшему развитию! 🚀
А как вы обрабатываете большие объемы данных? Делитесь опытом в комментариях! 👇
еще контент автора
еще контент автора
Sergei Shmelev
FullStack разработчик (JavaScript/TypeScript) · 27.02 · ред.
войдите, чтобы увидеть
и подписаться на интересных профи