| Arquitectura | Casos de Uso | Paquete Java | Requisitos Relacionados | |
|---|---|---|---|---|
| 1 | [1] Hexagonal (Puertos y Adaptadores) Hexagonal (Ports & Adapters) |
- Reservar un vuelo (Servicio de Reservas) - Procesamiento de pagos (Servicio de Pagos) |
com.example.app.infrastructure.adapters | - 2.3.2 Diseño modular: Separación en controladores, servicios y repositorios. - 2.3.3 Principios SOLID y clean code. |
| 2 | [2] Microservicios | - Separar dominios de negocio (Reservas, Pagos, Notificaciones) - Desplegar y escalar cada servicio de forma independiente |
com.example.app.{dominio}.service | - 2.2.1 Uso de Kafka o RabbitMQ para manejar reservas asíncronamente. - 4.1 Uso correcto de colas de mensajería. - 4.3 Estructura modular y buenas prácticas. |
| 3 | [3] Basado en Eventos Event-Driven |
- Enviar notificaciones por correo/SMS tras una reserva - Iniciar reembolsos en caso de fallo en el pago |
com.example.app.events | - 3.2 Publicación de eventos solo en caso de reserva confirmada. - 4.1 Uso correcto de colas de mensajería. - Consideración de fallos del broker. |
| 4 | [4] CQRS | - Consultas de alta velocidad para disponibilidad de vuelos - Procesar pagos con modelos de lectura/escritura separados |
com.example.app.application.handlers | - 5.1 Mejorar rendimiento en consultas de disponibilidad. |
| 5 | [5] Capas (N-Tier) Layered (N-Tier) |
- Gestión de roles de usuario en un panel de administración - Operaciones CRUD para servicios no críticos |
com.example.app.interfaces | - 2.3.2 Diseño modular: Separación en controladores, servicios y repositorios. - 4.3 Estructura modular y buenas prácticas. |
| 6 | [6] Patrón Saga Saga Pattern |
- Coordinación de reservas multi-paso (reserva, pago, confirmación) - Manejo de transacciones distribuidas (rollback compensatorio en caso de fallo) |
com.example.app.saga | - 4.4 Manejo de transacciones y rollback en caso de error. - 3.1 Solución a concurrencia en reservas (sin permitir sobreventa). |
| 7 | [7] API Gateway & BFF API Gateway & BFF |
- Agregar APIs para aplicaciones móviles y web - Redirigir solicitudes al microservicio correcto |
com.example.app.api | - 1.1, 1.2, 1.3, 1.4 API REST escalable. - 5.2 Autenticación para seguridad. |