Modelo de componentes S1 - JohannPaezU/MISW4501-MediSupply GitHub Wiki
Modelo de Componentes
Web App Angular
-
Responsabilidades: UI de backoffice y portal cliente: pedidos, inventario, rutas/ETA, devoluciones, visitas comerciales, reportes básicos.
-
Interfaces (consume): REST (API Gateway)
-
Datos: estado UI local
-
SLO: TTI < 3s en 4G; vistas críticas < 1s tras datos.
Mobile App Kotlin
-
Responsabilidades: ventas en campo, evidencias (fotos), confirmación entregas, tracking.
-
Interfaces: REST (API Gateway)
-
SLO: latencia percibida sub-500ms para tracking.
-
Seguridad: OAuth2/OIDC; Signed URLs para medios.
API Gateway (GCP)
-
Responsabilidades: entrada única, auth, rate limit, roteo, validación de esquemas.
-
provee: API REST público.
-
requiere: API REST de cada MS.
-
SLO: ≥99.95% disponibilidad.
-
Seguridad: JWT verificación, scopes por ruta.
-
Escalado: autoscaling gestionado.
Ventas MS
-
Responsabilidades: ciclo de vida de Pedido, DetallePedido, Pago (parte negocio), integración con pasarela, facturación básica.
-
provee: API REST /api/ventas
Inventarios MS
- Responsabilidades: stock multi-bodega, lotes, vencimientos; reservas y liberaciones; relación Producto–Inventario.
- Provee: API REST /api/inventarios
Compras MS
-
Responsabilidades: proveedores, portafolio, órdenes de compra, certificados sanitarios.
-
Provee: REST /api/compras
Logística & Ruteo MS
-
Responsabilidades: Ruta, asignación de Vehículo, ETA, optimización (Directions/Distance Matrix + OR-Tools), confirmación de entrega.
-
Provee: API REST /api/logistica
IoT Telemetry MS
-
Responsabilidades: ingestión y normalización de SensorIoT (GPS/temperatura), alertas cadena de frío.
-
Provee: API REST /api/iot (consulta) + suscripción Pub/Sub de dispositivos/bridge.
Notificaciones MS
Responsabilidades: email/SMS/push para eventos (pedido creado, alerta cadena frío, entrega confirmada).
Provee: API REST /api/notificaciones + consumidores Pub/Sub.
Pagos Adapter
-
Responsabilidades: integración con pasarela (tokens, intents, confirmaciones).
-
Provee: API REST /api/pagos/callback
-
Eventos Pub/Sub:
-
Publica: payment.approved, payment.rejected
-
Escalado: por picos de cobro.
Cloud SQL (PostgreSQL)
-
Responsabilidades: almacenamiento transaccional; schemas por servicio.
-
Provee: conexión SQL privada.
-
SLO: HA; RPO≈0, RTO<6h con réplicas cross-region.
Cloud Storage
-
Uso: evidencias (fotos de entrega/devolución), documentos regulatorios.
-
Acceso: Signed URLs; ciclo de vida/retención configurados.
Diagrama en HD: https://github.com/user-attachments/assets/2886ff94-1388-499b-a06b-b672e93c0fa1