SubastApp - Arquitectura del Sistema

πŸ—οΈ VisiΓ³n General de la Arquitectura

SubastApp es una aplicaciΓ³n de subastas en tiempo real que utiliza una arquitectura de microservicios containerizada con comunicaciΓ³n en tiempo real mediante WebSockets.

πŸ“Š Diagrama de Arquitectura

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Cliente Web β”‚ β”‚ Cliente Web β”‚ β”‚ Cliente Web β”‚ β”‚ (React App) β”‚ β”‚ (React App) β”‚ β”‚ (React App) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Nginx (80/443) β”‚ β”‚ (Proxy + Static Files) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Backend (3001) β”‚ β”‚ (Node.js + Socket.IO) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MySQL (3306) β”‚ β”‚ (Base de Datos) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🐳 Arquitectura de Contenedores

La aplicaciΓ³n utiliza Docker Compose para orquestar los siguientes servicios:

πŸ”§ Componentes del Sistema

1. Frontend (React + TypeScript)

TecnologΓ­as:

2. Backend (Node.js + TypeScript)

TecnologΓ­as:

3. Base de Datos (MySQL)

Esquema de base de datos:

4. Proxy/Web Server (Nginx)

Nginx actΓΊa como:

πŸ”„ Flujo de Datos

1. AutenticaciΓ³n

Cliente β†’ Nginx β†’ Backend β†’ MySQL β†’ Respuesta JSON

2. Subasta en Tiempo Real

Cliente A β†’ Socket.IO β†’ Backend β†’ MySQL β†’ Broadcast β†’ Cliente B, C, D...

3. Pujas

Cliente β†’ HTTP POST β†’ Backend β†’ MySQL β†’ Broadcast β†’ Todos los clientes

πŸ”’ Seguridad

Configuraciones de Seguridad Implementadas:

πŸ“ˆ Escalabilidad

Estrategias de Escalabilidad:

πŸ” Monitoreo y Logs

Logs Disponibles:

πŸš€ Deployment

Infraestructura como CΓ³digo:

πŸ“Š MΓ©tricas y KPIs

MΓ©tricas de Rendimiento:

ConclusiΓ³n

Esta arquitectura estΓ‘ diseΓ±ada para ser escalable, mantenible y segura, permitiendo futuras mejoras y optimizaciones segΓΊn las necesidades del negocio.