Tipo: Documentación Técnica
Categoría: Arquitectura del Sistema
Versión: 1.0
Propósito: Documentación de decisiones arquitectónicas y diseño del sistema
Objetivo: Proporcionar visión clara de la arquitectura y decisiones técnicas
Fecha actualización: 2026-03-25Documentación de decisiones arquitectónicas, patrones de diseño, y estructura del sistema THYROX.
Objetivo: Que nuevos desarrolladores comprendan la arquitectura y tomen decisiones consistentes.
THYROX es un template profesional para gestión de proyectos con Claude Code. La arquitectura se divide en componentes independientes:
Backend: Node.js + Express
Frontend: (Por definir)
Base de Datos: PostgreSQL
DevOps: GitHub Actions + Docker
Documentación: Markdown versionado en Git
REST API construida con Node.js y Express.
Estructura:
src/routes/ - Definición de endpoints
src/controllers/ - Manejadores de requests
src/services/ - Lógica de negocio
src/middleware/ - Middleware de Express
src/models/ - Modelos de datos
Configuración de build, testing, y deployment.
Incluye:
Scripts de setup, compilación, testing
Configuración GitHub Actions
Docker setup y compose
Ambiente variables
Documentación técnica y guías.
Incluye:
API.md - Endpoints y autenticación
BUILD.md - Guía de build y deployment
ARCHITECTURE.md - Decisiones arquitectónicas
CONTRIBUTING.md - Guía de contribución
Decisión: Mantener API y Build como sub-proyectos independientes dentro de un monorepo.
Razones:
Facilita desarrollo independiente
Permite versioning separado
Documentación colocalizada
CI/CD pipeline unificado
Decisión: Toda documentación en Markdown versionado en Git.
Razones:
Versionable y auditable
Sin dependencias externas
GitHub lo renderiza nativamente
Fácil de convertir a otros formatos
Decisión: ROADMAP.md es la fuente única de verdad para el estado del proyecto.
Razones:
Single source of truth
Fácil de actualizar
Histórico completo en Git
Accesible para todo el equipo
Decisión: Usar Conventional Commits para estandarización.
Razones:
Commits legibles y estructurados
Facilita changelog automático
Semántica clara
Herramientas integran fácilmente
Decisión: Usar features nativas de Claude Code, no librerías externas.
Razones:
Reduce dependencias
Facilita mantenimiento
No requiere configuración adicional
Integración directa
- Endpoints: RESTful design
- Autenticación: API Keys + Bearer tokens
- Validación: Input validation en middleware
- Error Handling: Standardized error responses
- Versionado:
/v1/prefix en URLs
- ORM: (Por definir)
- Migraciones: Git-based (no automáticas)
- Backup: Daily snapshots
- Índices: Optimizados para queries comunes
Separación de concerns:
Routes → Controllers → Services → Models
Cada capa con responsabilidad clara
Inyección de dependencias
Testing en cada nivel
Archivos: kebab-case.md
Carpetas: lowercase-folders/
Variables: camelCase
Constantes: CONSTANT_CASE
Classes: PascalCase
project/
├── api/
│ ├── src/
│ │ ├── routes/
│ │ ├── controllers/
│ │ ├── services/
│ │ ├── middleware/
│ │ ├── models/
│ │ └── utils/
│ ├── tests/
│ └── package.json
├── build/
│ ├── scripts/
│ ├── config/
│ └── Dockerfile
├── docs/
├── .claude/
│ ├── context/
│ ├── skills/
│ └── prds/
└── reference/
API: Stateless design para fácil escalado
BD: Connection pooling
Cache: Redis para datos frecuentes
CDN: Para assets estáticos
Code: Módulos independientes
DB: Índices optimizados
Cache: Estrategia inteligente
Monitoring: Métricas clave
Least Privilege: Mínimos permisos necesarios
Defense in Depth: Múltiples capas
Secure by Default: Seguridad es el default
Audit Trail: Logging de cambios
HTTPS: Siempre en producción
API Keys: Rotación periódica
Input Validation: En todos los endpoints
CORS: Configurado restrictivamente
Rate Limiting: Para prevenir abuse
Desarrollo: Local machine
Staging: Pre-producción para testing
Producción: Live environment
- Commit: Push a GitHub
- Test: Automated tests corren
- Build: Docker image se construye
- Deploy: Auto-deploy a staging
- Review: Manual approval
- Release: Deploy a producción
- Versiones anteriores en registry
- Database migrations reversibles
- Health checks antes de considerar ready
- Monitoreo post-deployment
Application: Estructura JSON
Access: Request/response logs
Error: Stack traces con contexto
Audit: Cambios críticos
Performance: Response times
Availability: Uptime y errors
Business: User counts, transactions
Infrastructure: CPU, memory, disk
Phase 1 (Actual): Estructura base
Phase 2: API completa
Phase 3: Build & deployment
Phase 4: Frontend
Phase 5: Escalabilidad
Última Actualización: 2026-03-25
Próxima Review: 2026-04-25