Мы строим систему на микросервисной архитектуре, где каждый сервис отвечает за свою зону ответственности (аутентификация, почта, хранилище файлов, торговый модуль, gateway и т.д.).
Backend:
Все сервисы написаны на Node.js (>=20) с использованием NestJS 11.
Для коммуникации используем два подхода:
REST API (со Swagger/OpenAPI для документации).
gRPC (контракты описаны через Buf/Protobuf).
Работа с данными через Prisma ORM (подключается PostgreSQL).
Очереди и фоновые задачи реализованы на BullMQ + Redis.
Кэширование также через Redis / cache-manager.
Логирование унифицировано — Winston + nest-winston с ротацией логов.
Хранилище файлов — AWS S3 SDK.
Почта — Nodemailer.
Авторизация — JWT + Passport, пароли через bcrypt.
Frontend:
Две части:
Админка на Next.js 14 + React 18, стилизация через MUI v6, Emotion, работа с сервером через TanStack Query.
Клиентский портал на Next.js 15 + React 19, MUI v7, Zustand для стейта, TanStack Query, realtime через socket.io.
Валидация форм через React Hook Form + Yup.
Для анимаций используем framer-motion.
Общие инструменты:
Язык — TypeScript 5.x.
Сборка/тесты — Jest, ts-jest, Testing Library на фронте.
Линтинг и форматирование — ESLint 9, Prettier.
Автоматизация релизов — semantic-release (GitLab).
Управление пакетами — Yarn 4 (Berry).