ArccNova v2 se construye como un monolito modular: un único proceso y una única base de datos PostgreSQL, pero con módulos que tienen límites estrictos definidos por Clean Architecture y comunicación exclusiva a través de proyectosDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/DevCarlosRodriguez/Documentacion-Arccnova-2.0/llms.txt
Use this file to discover all available pages before exploring further.
.Contracts. Esta página cubre ADR-001 (decisión del monolito modular) y ADR-002 (reconstrucción greenfield sin migración de datos de v1).
ADR-001 — Arquitectura Monolito Modular
Fecha: 2026-06-05 | Estado: Aceptado (actualizado 2026-06-10)Contexto
El equipo de Omni Tech tiene capacidad reducida. ArccNova v2 no tiene usuarios reales todavía. La velocidad de iteración y la simplicidad operativa son la prioridad. Se evaluó si convenía arrancar con microservicios dado que el cliente tiene planes de expansión futura (RH, CRM, etc.).Opciones evaluadas
| Opción | Descripción |
|---|---|
| Monolito Modular ✅ | Un solo proceso, una sola DB, módulos con límites estrictos vía Clean Architecture |
| Microservicios desde el inicio | Cada módulo como servicio independiente con su DB y deployment |
| Monolito tradicional | Sin límites de módulo — todo en capas planas |
Decisión
Monolito Modular. Cada módulo tiene sus propias capasDomain / Application / Infrastructure / Presentation / Contracts, pero se despliegan juntos en un solo proceso (Host.Api) compartiendo una sola base de datos PostgreSQL.
Estructura de capas por módulo
Cada módulo (exceptoHr) sigue el patrón de 6 csproj:
Hr es la excepción por su tamaño: es un único módulo físico con subcarpetas por contexto delimitado (decisión interna 14), evitando ~48 csproj adicionales.
Árbol de módulos del monolito
Consecuencias
- Un solo deployment y una sola base de datos; sin latencia de red entre módulos.
- Los módulos pueden extraerse como servicios independientes cuando el negocio lo justifique; los límites están diseñados para ello desde el inicio.
- Los límites de módulo se mantienen con disciplina más
NetArchTest.Rulesen CI — no hay enforcement técnico automático más allá de eso. - Cada sistema futuro independiente (si el CRM no entra al monolito) será su propio monolito hermano con su propia DB — no microservicios compartiendo infraestructura.
Actualización 2026-06-10
La premisa original de “cada sistema futuro será su propio monolito hermano” quedó parcialmente superseded: RH/Nómina entra dentro deArccNova.WebApi como módulo único Hr (ADR-009). El CRM sigue pendiente de su análisis aparte; su inclusión en el monolito se decidirá tras evaluar sus integraciones externas (ver decisiones-internas.md sección 5).
ADR-002 — Reset Total: Reconstrucción Greenfield sin Migración de Datos
Fecha: 2026-06-05 | Estado: AceptadoContexto
El sistema v1 (ArcnovaApp) tiene 107 entidades sin separación de bounded contexts, una capa de servicios plana, mezcla de EF Core y ADO.NET crudo, y cero tests automatizados. El cliente quiere ampliar el alcance funcional (fiscal US, Stripe, CRM) y agregar el mercado de EE.UU.
Se evaluó si convenía migrar el v1 incrementalmente o reconstruir desde cero.
Opciones evaluadas
| Opción | Descripción |
|---|---|
| Reconstrucción greenfield ✅ | Nuevo repo, nuevo modelo de datos, v1 sigue vivo en paralelo |
| Migración incremental del v1 | Refactorizar el v1 módulo por módulo manteniendo la operación |
Decisión
Reconstrucción greenfield. El v2 es un nuevo sistema con modelo de datos rediseñado desde cero. No hay ETL ni migración de datos desde el v1. El v1 seguirá operando como sistema legacy hasta que el v2 esté en producción y los clientes hayan migrado manualmente.Consecuencias
- Diseño libre sin deuda heredada — el modelo de datos refleja los bounded contexts reales.
- Sin ETL complejo ni período de coexistencia técnica complicado.
- El cliente necesita operar con dos sistemas en paralelo durante el desarrollo del v2.
- La validación con el cliente del scope del v1 es crítica antes de arrancar la Fase 1.