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

31 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-аналоги
- Плагинная архитектура требует дисциплины в структуре кода