Skip to main content

Principios Básicos

Este monorepo sigue una arquitectura limpia y escalable diseñada para el desarrollo server-first utilizando Next.js App Router, TypeScript, XState y Yup. Establece estándares para:
  • Separación de Responsabilidades: Delimitando claramente las responsabilidades entre capas (UI, Actions, Machines, Services) siguiendo los principios de la Arquitectura en Capas.
  • Soporte para Microfrontends: Permitiendo el desarrollo y despliegue independiente de aplicaciones de dominio de negocio distintas utilizando un enfoque de Arquitectura de Microfrontends.
  • Reutilización de código: Maximizando el intercambio de código entre aplicaciones mediante paquetes centralizados.
  • Orquestación del estado del servidor: Utilizando máquinas de estado XState tipadas (Patrón State) para gestionar procesos de negocio complejos del lado del servidor, orquestando llamadas a la Capa de Servicios.
  • Capa de Servicios Estructurada: Empleando una estructura orientada al dominio (Patrón Strategy, Factory Method/Service Locator) para definir abstracciones de servicio (interfaces, DTOs de métodos) separadamente de las implementaciones concretas, invocadas por las máquinas de estado.
Para una visión detallada del flujo de trabajo principal, consulta la Guía del Flujo de Trabajo Principal. Para detalles específicos sobre la implementación del backend, consulta la Guía de Backend y Lógica Central. Para detalles del frontend, consulta la Guía de Desarrollo Frontend. Para los estándares de Git, consulta la Guía de Convenciones de Git.

Estructura del Monorepo

El proyecto está organizado en apps (unidades desplegables/microfrontends) y packages (código compartido).
Estructura Raíz del Proyecto
Nota: Los componentes UI son proporcionados por la librería externa mappnext/ds-tw, instalada como una dependencia.

Comandos y Configuración

Comandos estándar ejecutados desde la raíz del monorepo:
Comandos Comunes de Desarrollo

Roles de los Paquetes Compartidos (packages/)

La funcionalidad compartida se organiza en paquetes dedicados. Los componentes UI provienen de una librería externa.

Stack Tecnológico

Las tecnologías centrales exigidas por esta arquitectura: