Files
Anton 99cd8ae727 docs: add full project documentation
- Architecture: overview, 7 ADR, tech stack
- Principles: code-style, git-workflow, security
- API contracts: auth, profile, tests, admin endpoints
- Database schema: tables, relationships, indexes
- LLM strategy: prompts, fallback, validation, Qwen 2.5 14B
- Onboarding: setup, Docker, .env template
- Progress: roadmap, changelog
- Agents: context, backend instructions

Made-with: Cursor
2026-03-04 12:07:17 +03:00

1.7 KiB
Raw Permalink Blame History

ADR-002: Fastify как backend-фреймворк

Статус

Принято

Контекст

Нужен HTTP-фреймворк для Node.js backend с TypeScript.

Варианты

  1. Express — самый популярный, огромная экосистема, но устаревший дизайн, нет нативной поддержки async/await в error handling, медленнее.
  2. Fastify — современный, быстрый, нативная поддержка TypeScript, встроенная валидация через JSON Schema, плагинная архитектура, Pino из коробки.
  3. NestJS — мощный фреймворк с DI, декораторами, модулями. Избыточен для команды 1-2 человек, крутая кривая обучения.

Решение

Fastify.

  • Встроенная валидация запросов через JSON Schema (пригодится для LLM-ответов)
  • Нативный Pino logger — не нужно настраивать отдельно
  • Плагинная система для чистой декомпозиции (auth, tests, llm — отдельные плагины)
  • Производительность выше Express в 2-3 раза на типичных нагрузках

Последствия

  • Меньше туториалов по сравнению с Express (но документация Fastify качественная)
  • Middleware из Express-экосистемы нужно адаптировать или искать Fastify-аналоги
  • Плагинная архитектура требует дисциплины в структуре кода