<aside>

Contenido

  1. Introducción
  2. Stack tecnológico
  3. Arquitectura de Software
  4. Esquema / Diseño de Base de Datos
  5. Integración RabbitMQ
  6. ms-clientes → Microservicio (Cliente, Persona)
  7. ms-cuentas → Microservicio (Cuenta, Movimientos)
  8. Comunicación entre microservicios
  9. Seguridad
  10. Pruebas unitarias
  11. Pruebas de integración
  12. Buenas prácticas de desarrollo
  13. Documentación API
  14. Despliegue en Docker
  15. CI/CD → AWS EC2
  16. Probar solución

</aside>

<aside>

Síncronca y Asíncrona

La comunicación entre microservicios en esta prueba combina dos mecanismos complementarios:

  1. Síncrona (REST): Al crear una cuenta, ms-cuentas hacec una petcición GET a ms-clientes para obtener el nombre del cliente en ese momento. Es una llamada puntual que solo ocurre en la creación. Se implementó con RestClient, que es la forma moderna en Spring Boot 4, reemplaza RestTemplate. Aplicamos Spring Retry con 3 reintentos y backoff exponencial, para que si ms-clientes tiene un fallo momentáneo, el sistema reintente antes de rendirse. Si ms-clientes está completamente caído, la cuenta se crea sin nombre y RabbitMQ lo sincroniza después.
  2. Asíncrona (RabbitMQ): Cuando se crea, actualiza o elimina un clinete en ms-clientes, se publica un evento al Topic Exchange de RabbitMQ. ms-cuentas escucha la queue y actualiza el clienteNombre en todas las cuentas asociadas. Esto es eventual consistency, el dato no se actualiza inmediatamente pero eventualmente llega. Si ms-cuentas está caído, los mensajes se acumulan en la queue y se procesan cuando vuelve. </aside>