Design

Ecosistema completo para organización y gestión de contenido con interfaces espaciales

Module Integrator – Diseño

Este documento deriva de ./requirements.md y describe el "cómo" a nivel de arquitectura y responsabilidades.

Objetivos de diseño

Referencias: ver requisitos en requirements.md (US-001, US-002, US-003, US-004, US-005, US-006).

Dependencias y límites del módulo

Servicios REUTILIZADOS de libs/core (NO implementar)

Servicios NUEVOS específicos del integrator (SÍ implementar)

Dependencias externas

Arquitectura y componentes

Arquitectura de 8 capas (contexto) - Integración con servicios existentes

App (Angular 20 + Signals)
├── Core Layer (NUEVOS servicios que coordinan existentes)
│   ├── IntegratorService (orquestador principal) ✨ NUEVO
│   ├── [REUTILIZA] ModuleRegistryService (@libs-core/module-base)
│   ├── DependencySolverService (resolución de dependencias) ✨ NUEVO
│   ├── LifecycleManagerService (gestión de ciclo de vida) ✨ NUEVO
│   └── [REUTILIZA] ModuleDiscoveryService (@libs-core/module-base)
├── Management Layer (NUEVOS servicios + reutilización)
│   ├── ConfigMergerService (usa ModuleConfigurationService existente) ✨ NUEVO
│   ├── ModuleActivator (activación/desactivación) ✨ NUEVO
│   ├── SettingsResolver (configuración por tenant) ✨ NUEVO
│   └── [REUTILIZA] ModuleConfigurationService (@libs-core/module-base)
├── Navigation Layer (NUEVOS servicios específicos UI)
│   ├── NavigationManagerService (navegación inter-módulo) ✨ NUEVO
│   ├── EmbeddableComponentRegistry (componentes embebibles) ✨ NUEVO
│   ├── ToolbarManagerService (toolbar global) ✨ NUEVO
│   └── BreadcrumbService (breadcrumbs dinámicos) ✨ NUEVO
├── Communication Layer (NUEVOS servicios + action-registry)
│   ├── ModuleProviderRegistry (servicios/datos proveedores) ✨ NUEVO
│   ├── ModuleConsumerResolver (resolución dependencias) ✨ NUEVO
│   ├── CrossModuleActionService (usa ActionRegistryService) ✨ NUEVO
│   ├── AssetSharingService (assets compartidos) ✨ NUEVO
│   └── [REUTILIZA] ActionRegistryService (@libs-core/action-registry)
├── Bootstrap Layer (NUEVOS servicios inicialización)
│   ├── BrowserBootstrapper (inicialización navegador) ✨ NUEVO
│   ├── StartupSequencer (secuencia priorizada) ✨ NUEVO
│   └── ModuleActivator (activación runtime) ✨ NUEVO
├── Validation Layer (NUEVOS + security existente)
│   ├── ContractValidator (validación contratos) ✨ NUEVO
│   ├── DependencyValidator (validación dependencias) ✨ NUEVO
│   ├── BrowserCompatibilityChecker (compatibilidad) ✨ NUEVO
│   ├── SecurityValidator (CSP y seguridad) ✨ NUEVO
│   └── [REUTILIZA] PermissionService (@libs-core/security)
├── Orchestration Layer (NUEVOS + event-system)
│   ├── WorkflowCoordinator (coordinación con Workers) ✨ NUEVO
│   ├── AsyncOperationCoordinator (operaciones asíncronas) ✨ NUEVO
│   ├── EventCoordinator (usa EventBusService) ✨ NUEVO
│   ├── StateCoordinator (sincronización BroadcastChannel) ✨ NUEVO
│   └── [REUTILIZA] EventBusService (@libs-core/event-system)

Versión futura (v2.0) - Web Workers

Web Workers (threads específicos del integrator - FUTURA IMPLEMENTACIÓN)
├── ModuleLoaderWorker (carga módulos pesados) 🔮 FUTURO v2.0
├── DependencyResolverWorker (dependencias complejas) 🔮 FUTURO v2.0
└── PerformanceAnalyzerWorker (análisis performance) 🔮 FUTURO v2.0

División de responsabilidades por capa

Contratos y modelos (ligeros)

Entidades clave (importadas de module-base y shared-models)

Modelos específicos del integrator (extienden shared-models)

APIs principales (nombres y E/S)

Eventos del ciclo de vida (EventBus)

Decisiones de diseño (ADR)

Riesgos y mitigaciones

Estrategia de pruebas y observabilidad

Mapeo de cobertura (servicios nuevos vs. reutilizados)

Versión futura (v2.0)

Enlaces: requirements.md · tasks.md