- 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
1.7 KiB
1.7 KiB
ADR-002: Fastify как backend-фреймворк
Статус
Принято
Контекст
Нужен HTTP-фреймворк для Node.js backend с TypeScript.
Варианты
- Express — самый популярный, огромная экосистема, но устаревший дизайн, нет нативной поддержки async/await в error handling, медленнее.
- Fastify — современный, быстрый, нативная поддержка TypeScript, встроенная валидация через JSON Schema, плагинная архитектура, Pino из коробки.
- NestJS — мощный фреймворк с DI, декораторами, модулями. Избыточен для команды 1-2 человек, крутая кривая обучения.
Решение
Fastify.
- Встроенная валидация запросов через JSON Schema (пригодится для LLM-ответов)
- Нативный Pino logger — не нужно настраивать отдельно
- Плагинная система для чистой декомпозиции (auth, tests, llm — отдельные плагины)
- Производительность выше Express в 2-3 раза на типичных нагрузках
Последствия
- Меньше туториалов по сравнению с Express (но документация Fastify качественная)
- Middleware из Express-экосистемы нужно адаптировать или искать Fastify-аналоги
- Плагинная архитектура требует дисциплины в структуре кода