Cuadro Comparativo Arquitecturas Propuestas Solucion

  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.