Arquitectura y despliegue - ds-2026-grupo-02/SmartPantry GitHub Wiki
Arquitectura y despliegue
En esta sección se detalla la arquitectura general de la aplicación y la estrategia utilizada para su despliegue.
Arquitectura adoptada
Para el desarrollo del sistema de Despensa inteligente y perfil nutricional se ha adoptado una arquitectura de monolito en capas basado en ABP Application (Layered).
Características principales de la solución:
- Backend unificado: La aplicación cuenta con un único backend desplegable, un único repositorio de código y un único pipeline de integración continua.
- Separación lógica en capas: El sistema se organiza de forma estricta separando las responsabilidades lógicas en capas bien definidas:
- Presentation / HttpApi.Host: Expone la API REST del backend y aloja la interfaz de usuario desarrollada en Angular.
- Application: Capa encargada de coordinar los casos de uso del sistema y los servicios de aplicación.
- Domain: Contiene el modelo de dominio central, las entidades, los objetos de valor y las reglas de negocio puras.
- EntityFrameworkCore (Infraestructura): Resuelve la persistencia de los datos y la conexión con la base de datos relacional (SQL Server).
- Ausencia de microservicios: No se utilizan microservicios ni módulos desplegables de manera independiente; todo el sistema opera de forma monolítica bajo el framework ABP.io.
Justificación de la arquitectura elegida:
- Ventaja principal: Ofrece una menor complejidad general para diseñar, desarrollar, probar y desplegar la aplicación durante el transcurso de la cursada.
- Riesgo principal: Existe el riesgo potencial de sufrir acoplamiento interno entre las capas si no se respetan estrictamente las responsabilidades y dependencias unidireccionales que propone ABP.