Arquitectura Lógica
This content is not available in your language yet.
Lynx se fundamenta en un modelo de monorepo unidireccional gestionado por pnpm Workspaces. Esta estructura permite una separación clara de responsabilidades y un flujo de dependencias predecible.
Organización del Workspace
Sección titulada «Organización del Workspace»Lynx se divide en dos grandes áreas funcionales, cada una con un propósito específico dentro del ciclo de desarrollo.
Aplicaciones (Apps)
Sección titulada «Aplicaciones (Apps)»Son los puntos finales de ejecución y despliegue. Cada una se encarga de una interfaz o servicio específico:
- Next.js App: Interfaz de usuario principal y lógica de cliente.
- NestJS API: Núcleo de servicios, procesos de backend y persistencia.
- Astro Docs: Infraestructura de contenido estático y aprendizaje.
Paquetes (Packages)
Sección titulada «Paquetes (Packages)»Módulos compartidos que proveen capacidades transversales a todas las aplicaciones.
| Paquete | Responsabilidad Técnica |
|---|---|
ui | Sistema de diseño basado en Bulma y CSS Modules. |
models | Definiciones de modelos de Drizzle y schemas Zod. |
core | Utilidades agnósticas y lógica de negocio compartida. |
auth | SDK para todo el flujo de autenticación, sesiones y control de acceso implementado con Better Auth. |
mail | SDK de envío de correos y renderizado de plantillas de emails transaccionales construidos con React Email. |
cli | CLI para inicializar entornos y manejar secretos. |
Diagrama de Flujo de Dependencias
Sección titulada «Diagrama de Flujo de Dependencias»graph TD
subgraph Packages
M[models] --> UI[ui]
Ma[mail]
A[auth]
end
subgraph Apps
NEXT[next] --> UI
NEXT --> M
NEST --> M
NEST --> Ma
NEST --> A
ASTRO[astro] --> UI
end
Estándares de Ingeniería
Sección titulada «Estándares de Ingeniería»Para mantener la cohesión de la base de código, Lynx impone una serie de convenciones rigurosas:
[!IMPORTANT] Prohibición de
any: Todo el código debe estar estrictamente tipado. Si una estructura es desconocida, debe definirse en el sitio adecuado.
- Estilizado: No se utilizan frameworks de utilidades (ej. Tailwind). Se prioriza el uso de la librería de UI (@lynx/ui) para un control total del diseño.
- Validación de Datos: Todas las entradas y salidas de datos deben ser validadas mediante esquemas de Zod antes de su procesamiento. Aplica para frontend y backend.
Arquitecturas Internas
Sección titulada «Arquitecturas Internas»Además de la arquitectura lógica del monorepo, cada aplicación implementa su propia arquitectura interna:
- Next.js: App Router con flujo de datos basado en Server Components y Client Components.
- NestJS: Arquitectura modular con módulos, controladores, servicios y pipes. Inyección de dependencias que permite mantener arquitectura limpia.
- Astro: Arquitectura basada en páginas y componentes de Astro y React.