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
This commit is contained in:
30
architecture/decisions/002-fastify.md
Normal file
30
architecture/decisions/002-fastify.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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-аналоги
|
||||
- Плагинная архитектура требует дисциплины в структуре кода
|
||||
Reference in New Issue
Block a user