Files
adas-core/Documentation/docs/docs/architecture.md
T
2026-06-26 10:29:23 +02:00

2.0 KiB

Arquitectura

ADAS Core sigue una arquitectura de capas que separa claramente las responsabilidades entre los diferentes proyectos de la solución.

Capas principales

Capa Proyecto Responsabilidad
Presentación adas-core Exposición de la API HTTP, WebSocket Hubs, middleware y composición del grafo de dependencias.
Aplicación adas-core.Application Casos de uso, servicios de aplicación, interfaces de repositorio, proveedores y customizaciones por centro.
Dominio adas-core.Domain Entidades, modelos, enums, excepciones de negocio y utilidades compartidas.
Infraestructura adas-core.Infrastructure Implementaciones de repositorios, acceso a MongoDB, mensajería RabbitMQ, caché Redis y mapeos de persistencia.
Autenticación adas-core.Authentication Atributos, servicios de autoridad, gestión de usuarios y extensión de registro de autenticación.
Módulos adas-core.module.* Funcionalidades específicas desacopladas (balizas, proxy de dispositivos, relés).

Flujo de datos

  1. Los Controllers reciben las peticiones HTTP y delegan en los Services de aplicación.
  2. Los Services ejecutan la lógica de negocio y utilizan las interfaces de repositorio definidas en Application.
  3. Los Repositories concretos (en Infrastructure) acceden a MongoDB y publican eventos a través de RabbitMQ cuando es necesario.
  4. Los WebSocket Hubs (UciHub) envían actualizaciones en tiempo real a los clientes conectados.

Dependencias entre proyectos

adas-core
├── adas-core.Application
│   ├── adas-core.Domain
│   └── (interfaces de infraestructura)
├── adas-core.Infrastructure
│   ├── adas-core.Application
│   └── adas-core.Domain
├── adas-core.Authentication
│   └── adas-core.Domain
├── adas-core.module.*
│   ├── adas-core.Application
│   └── adas-core.Domain
└── adas-core.Test
    └── (todos los proyectos)